首先,在插件 Really Simple SSL 的默认配置里,插件本身是自带301重导向到 https 设定的。
其次也默认内部的 WordPress 301 重新导向到 SSL。
但是默认关闭了 301.htaccess 导向,因为 .htaccess
文件里的导向配置可能与插件自带的301重导向形成环,从而形成重导向循环造成资源浪费甚至无法访问网站。
我有两个域名都解析在这个网站上,这里假设第二域名是 domain.com ,先介绍域名跳转情况:
-
限制域名设置
我设置了限制特定域名访问,可访问清单有:www.linqingmaoer.cn www.domain.com -
导向关系
- www.linqingmaoer.cn 自动跳转到 https://www.linqingmaoer.cn
- linqingmaoer.cn 则会自动跳转到 https://www.linqingmaoer.cn
- www.domain.com 跳转到 https://www.domain.com 点进文章后则依然是 https://www.domain.com/
- domain.com 跳转到 https://domain.com 点进文章后则跳转到 https://www.linqingmaoer.cn
- 更改解析主机
我将 domain.com 和 www.domain.com 解析到另一台主机上后,访问时自动挂上了锁(http --> https)并无法访问,原因自然是我另一台主机上没有配置 https 证书。
而我折腾一晚的 .htaccess
文件就从来没起过作用
分析与猜测:
-
根据导向关系 1 3 4,猜测插件的作用是将所有解析到该网站上的域名自动挂锁(http --> https)
-
而导向关系 2 和 4 应该是由于 WordPress 的301重导向造成的,即不在限制域名可访问清单内的域名最后会跳转到主域名 www.linqingmaoer.cn
-
导向关系 2 应该重导向了两次,linqingmaoer.cn --> www.linqingmaoer.cn --> https://www.linqingmaoer.cn 猜测加www是 WordPress安排的,自动挂锁自然是插件安排的,当然也可以是 linqingmaoer.cn --> https://linqingmaoer.cn --> https://www.linqingmaoer.cn
-
导向关系 4 则说明解析到该主机的域名可以访问主页,但进内部链接时会自动跳转到限制清单内的主域名里。
-
而且我观察到安装启动插件后,设置多域名访问的配置文件 wp-config.php 中的 http 都被更改成了 https(注释内的也没放过):
image
结论:
-
WordPress 301 重导向有个主域名 www.xxxx.com ,会将 xxxx.com 重导向到 www.xxxx.com ,也会在其他域名进内部链接时重导向到该主域名下,由于没找到主域名的配置原理或者说配置文件,我干脆把限制域名访问清单只留下了 www.linqingmaoer.cn 这一个。
-
Really Simple SSL 插件则是尽量给所有该网站的链接都安排上https,主页,文章页,甚至是css文件、js文件。
-
但不知道为什么我的第二域名被安排上 https 以后更改解析主机仍然是自动挂锁状态,导致其它主机不配置 https 证书该第二域名就自动失效不可用。要想弄清楚这个问题应该要先弄清楚 Really Simple SSL 插件安排自动挂锁的原理
这里我注意到我的域名解析记录里自动添加了两条可能和该插件作用原理有关的记录:
image
具体是否有关系以及有什么样的关系我已经无力研究了...
网友评论