将一个域迁移到另一个域并在新域上强制https

时间:2015-03-25 19:35:55

标签: apache .htaccess migration http-status-code-301

我正在尝试将一个域迁移到一个新域,并强制将所有内容强制为https。

我使用.htaccess尝试了一些迭代但没有运气。

我尝试过的一件事是:

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

这会重定向除旧网站https链接之外的所有内容。

还尝试过其他选项:

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] 

也没有运气。

我想我错过了一些非常简单的东西......任何提示都会受到赞赏!

1 个答案:

答案 0 :(得分:1)

除了未转义的.字符外,您的初始尝试是正确的。要将一个域重定向到另一个域并切换到HTTPS连接,请考虑其他站点指向同一文档根目录:

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

<强>更新 虽然上面的规则是正确的,但原始海报没有发生从https://www.oldsite.comhttps://www.newsite.com的重定向,因为newsite.com没有有效的证书。