使用 htaccess 将所有 https://www.mydomain.com 重定向到 https://mydomain.com(cpanel 中的 2 SSL HOST)[重复]

Posted

技术标签:

【中文标题】使用 htaccess 将所有 https://www.mydomain.com 重定向到 https://mydomain.com(cpanel 中的 2 SSL HOST)[重复]【英文标题】:Redirect all https://www.mydomain.com to https://mydomain.com using htaccess (2 SSL HOST in cpanel) [duplicate] 【发布时间】:2013-04-03 08:14:40 【问题描述】:

我需要重定向一个域https://www.mydomain.com to https://mydomain.com. 我使用这个 .htaccess 但它不适合我。

之前我有 https://www.mydomain.com 的 ssl 证书,但它坏了,我们为主机 https://mydomain.com 注册新的 ssl

在 WHM 中只有一个 ssl 主机,但在 cpanel 中有两个主机,一个是旧的 www.mydomain.commydomain.com(这对重定向有影响吗?)

.htaccess 在下面。

RewriteEngine on

RewriteCond %HTTPS on
RewriteCond %HTTP_HOST ^www\.mydomain\.com$ [NC]
RewriteRule ^(.*)$ https://mydomain.com/$1 [R=301,L]

RewriteCond %HTTPS off
RewriteCond %HTTP_HOST ^(www\.)?mydomain\.com$ [NC]
RewriteRule ^(.*)$ https://mydomain.com/$1 [R=301,L]

我在输入https://www.mydomain.com 时总是收到安全警报。

我在这里犯了什么错误?

提前致谢

【问题讨论】:

2和3有什么区别 我在第三次使用 HTTPS_HOST 【参考方案1】:

这里有什么错误?

错误在于没有%HTTPS_HOST 变量%HTTP_HOST 是作为 HTTP 协议一部分的请求标头(主机)。您不需要第 3 行,您要做的是使用 %HTTPS 变量检查请求是否为 HTTPS,就像您在第一个条件中所做的那样:

RewriteCond %HTTPS off
RewriteCond %HTTP_HOST ^(www\.)?mydomain\.com$ [NC]
RewriteRule  ^(.*)$ https://mydomain.com/$1 [L,R=301]

RewriteCond %HTTPS on
RewriteCond %HTTP_HOST ^www\.mydomain\.com$ [NC]
RewriteRule  ^(.*)$ https://mydomain.com/$1 [L,R=301]

【讨论】:

感谢您的回复,它的回答很好,但我无法将“mydomain.com”重定向到“mydomain.com”,其他都很好。这里的主要问题是,我有 ssl 证书“mydomain.com”,因为服务器问题导致 ssl 中断,并在“mydomain.com”中新安装了 ssl。这是问题吗?你说什么?

以上是关于使用 htaccess 将所有 https://www.mydomain.com 重定向到 https://mydomain.com(cpanel 中的 2 SSL HOST)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 htaccess 将所有流量重定向到裸域 SSL

使用 .htaccess 将所有子域和子目录重定向到索引页面

htaccess 将所有页面重定向到单个页面

.htaccess - 将所有 URL + 现有目录重定向到 index.php

htaccess - 将所有非 www 流量重定向到 www

使用 htaccess 将所有流量从根重定向到特定的子域页面