Redirecting to a new URL (domain and/or path)
Make sure you’ve got mod_rewrite on and your rewrite base is propertly set:
RewriteEngine On
RewriteBase /
Redirecting a domain
Describe all the domains that you want redirected. In this case we want to redirect both alpha-domain.com
and its subdomain www.alpha-domain.com
:
RewriteCond %{HTTP_HOST} ^alpha-domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.alpha-domain.com$
And point those requests that match the condition to the new domain by using:
RewriteRule (.*)$ https://beta-domain.com/$1 [R=301,L]
As a summary, this is what we should have in the .htaccess
file:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^alpha-domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.alpha-domain.com$
RewriteRule (.*)$ https://beta-domain.com/$1 [R=301,L]
Redirecting to secure connection (TLS/SSL (aka HTTPS))
Below is all there’s needed. If you want to ensure the user is always redirected to TLS in addition to a new domain, just omit the first two lines if you already have them in the .htaccess
file:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
NB: This one is domain-agnostic, so in the case of redirecting to a new domain, make sure you have redirected the user to the new domain, before sending him on the secure connection.