我们有一个WordPress网站,并且曾经有一个SSL证书。该站点以前都是HTTPS,现在我们不再需要SSL,因此我们让它过期。
我们已经在管理面板中将站点地址和WordPress地址更改为http://example.com
。
https://
如果用户https://
在站点中断的情况下访问网站,或者用户在浏览器中收到警告消息,则有大量链接可以直接返回给我们。
底线是,我们需要将所有https://
流量重定向到http://
。
我尝试了几个插件(没有运气):
甚至更改了.htaccess
文件(仍然没有运气)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} ^443$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
不知道我还需要做什么。
这里的问题在于,在使用Apache或WordPress之前,浏览器需要通过连接,执行SSL握手,交换(和验证)证书以及仅在所有之后通过HTTPS与服务器建立连接。完成后,浏览器将发出HTTP请求,该请求告诉服务器它正在寻找什么资源。
因此,如果没有.htaccess或WordPress插件,则无需他们建立安全的会话就无法重定向用户。
当然,如果您安装了自签名证书,则在发生任何此类情况之前,将向用户显示警告。如果您是偶然的(似乎不是演员)已经通过https发送严格传输安全标头,那么以前的访问者的浏览器甚至可能不允许他们通过HTTP连接。
如果要将HTTPS流量重定向到HTTP,不幸的是,您将必须获取有效证书并使用.htaccess或某些PHP代码进行重定向。
如果您要寻找大多数浏览器信任的证书而无需付费,则可以从Let's Encrypt获得免费证书。
底线是,如果要无缝地将HTTPS流量重定向到HTTP而没有任何警告消息,则需要从受信任的CA安装另一个SSL证书。