某些url 重写时遇到问题。 我想将所有网址重定向到没有 www 的 https
目前我有:
1) 强制 https 与 (s) -工作http://example.com => https://example.com
2) 强制使用 https 并删除 www -工作http://www.example.com => https://example.com
3) 使用请求从 https 中删除 www -失败https://www.example.com => https://example.com
似乎它甚至没有通过ERR_SSL_UNRECOGNIZED_NAME_ALERT到达我的htaccess代码 网站可能暂时关闭,或者可能已永久移至新的网址。
这是我的htaccess文件中的内容
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>
该网站由主机Gator托管,我联系了支持人员,并被告知无法设置,因为该网站是使用Wordpress构建的。
这对我来说似乎不是正确的答案,所以我想我会在这里问。
任何信息赞赏。
干杯
RewriteCond %{HTTPS} off
不会检测到HTTPS请求,因此您可能希望仅针对HTTPS请求添加另一个规则(具有相同/相似的条件),例如:
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
除了添加这个,您还可以使用 OR 条件简化所有内容:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} !^example.com$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,L]
</IfModule>
这意味着,如果HTTPSnull
或off
,或者域不以example.com开头,请重定向到https://example.com。
有趣的是,支持认为 Wordpress 以某种方式阻止了 .htaccess 的使用,但我想知道您的主机是否有某些.htaccess限制,阻止依赖它的插件(例如防弹安全性)正常工作。