Search code examples
apache.htaccessmigrationhttp-status-code-301

Migrate one domain to another and force https on new domain


I am trying to migrate one domain to a new domain as well as force everything to https.

I have tried a few iterations using .htaccess with no luck.

One thing I tried was:

RewriteCond %{HTTP_HOST} !newsite.com$ [NC]
RewriteRule ^(.*)$ https://www.newsite.com/$1 [L,R=301] 

This redirects everything except the oldsite https links.

Also have tried other options like:

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^(.+)\.oldsite.com\.com$ [NC]
RewriteRule (.*) https://newsite.com/$1 [L,R=301,QSA]

RewriteCond %{HTTP_HOST} !newsite.com$ [NC]
RewriteRule ^(.*)$ http://www.newsite.com/$1 [L,R=301] 

Also with no luck.

I imagine I am missing something quite simple...any tips would be appreciated!


Solution

  • Besides unescaped . character, your initial attempt is correct. To redirect one domain to another and switch to HTTPS connection, considering that there are other sites pointing to the same document root:

    RewriteEngine on
    RewriteCond %{HTTP_HOST} !newsite\.com$ [NC]
    RewriteRule (.*) https://www.newsite.com/$1 [R=301,L]
    

    UPDATE: Although the rule above is correct, redirection from https://www.oldsite.com to https://www.newsite.com didn't occur for original poster because newsite.com didn't have a valid certificate.