Wordpress SSL& www重写

时间:2018-01-25 21:57:06

标签: wordpress .htaccess ssl

有一些网址重写的问题。 我想将所有网址重定向到没有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构建的。

这对我来说似乎不是正确的答案所以我想在这里问。

任何信息赞赏。

干杯

1 个答案:

答案 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 nulloff ,或者域不以 example.com开头 ,重定向到 https://example.com

支持认为Wordpress会以某种方式阻止使用 .htaccess ,但我不知道你的主机是否有某些 .htaccess 限制,阻止依赖的插件它(例如BulletProof Security)正常工作。