将MultiSite安装从HTTP切换到HTTPS


11

我安装了URL设置为http://example.com的 MultiSite ,但现在我想强制所有请求通过HTTPS进行,因此我试图将URL更改为https://example.com。我浏览了数据库,并将所有siteurlhome值更新为https,但是该站点仍通过HTTP加载,而不是重定向到HTTPS。

我知道我可以设置一些htaccess规则,但是容易出错。在常规安装中,WordPress会自动将所有请求重定向到siteurlhome设置中定义的规范URL ,因此我假设MultiSite也是如此。

Answers:


2

有一些插件可以将站点设置为SSL。为什么不使用其中之一?

并且您确实安装了SSL证书并处于活动状态吗?


我见过的所有插件都是将特定页面设置为使用HTTPS,而不是整个站点。在常规WP安装中,使整个站点都使用HTTPS的常规方法是设置siteurlhome值。即使有可用的东西,当您仅可以设置配置值(安全性,性能等)时,使用插件还是一个不好的主意有几个原因。另外,我非常有信心,无论SSL证书是否存在都没有关系。WordPress不会在确定标准URL时进行检查。
伊恩·邓恩

没错,我只是想知道您是否已经安装了它(很多人都不知道如果您真的想使用SSL,因此就需要Q证书)。我只是记得我有一段时间使用SSL来开发我的网站(不仅是特定页面,而是您想要的整个网站)。我将查找代码。
Hiranthi'4

嗯..找不到我当时使用的代码。不过,我也发现这一点:prosauce.org/blog/2010/08/...
Hiranthi

我出于其他原因安装了Better WP Security,但事实证明,它具有强制所有页面请求(前后)通过SSL的选项。
伊恩·邓恩

1
最好的解决方案是不使用插件恕我直言的解决方案。这样,插件就不必解析每个请求。
captainblack

3

我遇到了同样的问题:使用WordPress多站点,没有选项或设置定义站点域是HTTP还是HTTPS。即使替换了数据库中所有出现的内容,站点访问者仍可以使用HTTP输入和导航站点,而无需重定向到HTTPS。

以下简单的解决方案mod_rewrite对我有用:在WordPress特定的重写规则之前,我将此规则添加到了.htaccess文件中。

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

由于此规则未定义特定域,因此非常适合WordPress多站点的需求。

我在以下线程中找到了此规则:https : //stackoverflow.com/questions/4398951/force-ssl-https-using-htaccess-and-mod-rewrite


这种类型的解决方案对于协议均质化的多站点非常有用。一旦您希望在多站点网络中混合使用SSL和非SSL站点,事情就会变得复杂起来。非常复杂。
CC

确实,我的上下文是一个网络,在该网络中,我同时将所有站点切换到SSL。
Manu

将其放在WordPress特定规则之前可以为我解决。谢谢-这个解决方案花了我一段时间。
bastelflp
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.