有一些网址重写的问题。 我想将所有网址重定向到没有www的https
目前我有:
1)使用(s)强制https - 正常工作 http://example.com => https://example.com
2)使用(s)强制https并删除www - 工作 http://www.example.com => https://example.com
3)通过https删除带有(s)请求的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>
该网站由Host Gator托管,我联系了支持人员,并被告知无法进行此设置,因为该网站是使用Wordpress构建的。
这对我来说似乎不是正确的答案所以我想在这里问。
任何信息赞赏。
干杯
答案 0 :(得分:0)
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>
这意味着,如果 HTTPS 为null
或off
,或者域不以 example.com开头 ,重定向到 https://example.com 。
支持认为Wordpress会以某种方式阻止使用 .htaccess ,但我不知道你的主机是否有某些 .htaccess 限制,阻止依赖的插件它(例如BulletProof Security)正常工作。