根据站点地址URL在WWW重定向之前强制WordPress HTTPS重定向

时间:2018-11-15 作者:zigojacko

域的默认web地址为:

https://www.example.com
如果我在Wordpress中将其设置为“站点地址(URL)”,那么它似乎可以自己处理必要的http->https和非www->www重定向。

但问题是Wordpress首先重定向以下内容:

http://example.com to http://www.example.com
在此之前:

http://example.com to https://example.com
这意味着我们的HSTS 预加载状态和资格未通过我们的检查here.

我们需要确保https重定向发生在www重定向之前。

我不知道如何最好地做到这一点,但我可能更喜欢某种与默认功能挂钩并对其进行相应修改的主题功能。

我确实尝试将默认网站地址设置为http://example.com 然后在中处理https和www重定向。htaccess,但这似乎并不理想,而且可能会变得混乱(另外,我只能让https重定向工作,而不能在之后重定向www)。

当然,肯定还有很多其他符合HSTS条件的Wordpress网站使用默认设置https://www 开始访问网站?

3 个回复
SO网友:kero

只要用你自己的方式去做就行了。htaccess,它将更加简单。重要的是规则是above WordPress的规则。背景L 还规定,如果找到匹配项,这将是最后一条评估的规则

# Redirect to https
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

# Redirect non-www to www
RewriteCond %{HTTP_HOST} ^example\\.com [NC]
RewriteRule (.*) https://www.example.com/$1 [R=301,L]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

SO网友:Chris

# Redirect to https
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

# Redirect non-www to www
RewriteCond %{HTTP_HOST} ^example\\.com [NC]
RewriteRule (.*) https://www.example.com/$1 [R=301,L]
刚试过,效果很好。记住在Wordpress中也要设置Wordpress地址和站点地址。我认为“无限循环”;在上述评论中;来自于此。

始终测试主url,然后测试一个类似的示例。com/关于。html,正如我有时发现的那样,根域重定向很好,但通过添加页面,如果重定向不正确,就会出现问题。

请随时回复我的评论。

SO网友:zigojacko

如果其他人正在努力获取他们的Wordpress网站(作为默认地址https://www) 通过HSTS preload 检查子域,以便您可以将站点提交到浏览器的站点预加载列表,然后我最终通过使用this plugin 我在my answer above. 这可以处理Wordpress上的所有https重定向,并且做得很好,因此Wordpress不会干扰任何内容。

结束

相关推荐

多站点:将主站点的URL更改为HTTPS

我已经在新安装的WordPress上设置了多站点。然后我创建了一些其他网站,所以,最后,我有了这样的东西http://example.comhttp://site1.example.comhttp://site2.example.comhttp://site3.example.com然后我安装了SSL数字证书,因此我更改了网站的URL以匹配HTTPS方案:http://example.com更改我转到的方案Sites > All Sites, 然后单击每个站点,在选项卡“信息”(第一个)中,我只需更