在 .htaccess 中使用 HTTPS 将旧域重定向到新域

Posted

技术标签:

【中文标题】在 .htaccess 中使用 HTTPS 将旧域重定向到新域【英文标题】:Redirect an Old Domain to a New Domain with HTTPS in .htaccess 【发布时间】:2016-02-18 17:41:30 【问题描述】:

假设我们有, 旧域:http://www.olddomain.com 新域名:https://www.newdomain.org

这是我的 .htaccess 文件数据:

RewriteEngine On
RewriteCond %HTTPS off
RewriteRule ^(.*)$ https://%HTTP_HOST%REQUEST_URI [L,R=301]
RewriteCond %HTTP_HOST ^olddomain\.com$ [OR]
RewriteCond %HTTP_HOST ^www\.olddomain\.com$
RewriteRule ^/?$ "https\:\/\/www\.newdomain\.org\/" [R=301,L]

有时在重定向时,浏览器会显示安全错误,使其不受信任。

现在,

    如何做到这一点? 如何将其从非 www 重定向到 www ?

【问题讨论】:

【参考方案1】:

在测试之前更改规则的顺序并清除浏览器缓存:

RewriteEngine On

RewriteCond %HTTP_HOST ^(www\.)?olddomain\.com$ [NC]
RewriteRule ^ https://www.newdomain.org%REQUEST_URI [L,R=301]

RewriteCond %HTTP_HOST !^www\. [NC]
RewriteRule ^ https://www.newdomain.org%REQUEST_URI [L,R=301]

RewriteCond %HTTPS off
RewriteRule ^ https://%HTTP_HOST%REQUEST_URI [L,R=301]

【讨论】:

安全错误已清除!但它无法将非 www 转换为 www。 完美@anubhava!非常感谢! 完美,我不小心为临时域保留了 301,浏览器缓存抛出 ssl 错误,这个问题解决了

以上是关于在 .htaccess 中使用 HTTPS 将旧域重定向到新域的主要内容,如果未能解决你的问题,请参考以下文章

HTACCESS-将旧域重定向到新域

.htaccess 301 将旧域上的所有页面重定向到新域上的单个页面

将旧域的所有网页重定向到新域索引

将旧域的每个页面重定向到新域上的相同页面URL

.htaccess - 将旧网站重定向到主域,但也将一些内容重定向到主域的子域

htaccess 重定向 301 + 重写冲突