将站点地址从HTTP更改为HTTPS后出现混合内容警告

时间:2017-04-04 作者:3000

我只需在设置->常规(Wordpress地址和网站地址)中更改URL,即可将我的网站地址从HTTP更改为HTTPS在管理方面绝对没有问题,一切正常。

网站面向公众的部分发生了什么:有很多“混合内容”,因此Firefox抱怨网站不安全。我注意到(查看源代码)我上传到媒体库的几乎所有图像仍然是用HTTP而不是HTTPS“呈现”的。

如何使用HTTPS URL为图像、字体等提供服务?

[更新]我发现,通过编辑两个硬编码为“http://”的主题文件,可以解决几个问题。问题是图像,如果您不想更改数据库,显然没有解决方案

5 个回复
SO网友:Ian

这是因为WordPress在默认情况下将URL绝对保存在内容中(这意味着它实际上将您的URL保存为http://example.com 在数据库中)。因此,要修复此问题,您需要在数据库中运行搜索和替换来修复这些错误。

我喜欢使用插件Better Search Replace 因为它有一个很好的特性,可以让您将搜索/替换作为试运行来测试。还有很多其他的搜索/替换方法,您也可以在PhpMyAdmin中进行更改,但我只介绍如何使用更好的搜索替换插件。

假设您使用的是更好的搜索替换:

  1. BACK UP YOUR DATABASE! Always always always. Use whatever tool you want to do this (UpdraftPlus, or dump (NOT DROP) it from PhpMyAdmin or straight from MySQL are all options).更好的搜索替换将网站的非SSL版本添加到搜索字段http(例如。http://example.com) 以及网站的SSL版本到替换字段Search Replace Example 1wp_posts 和wp_postmeta 表,但如果您愿意,可以将它们全部添加。只需知道,这可能需要更长的时间和超时时间,具体取决于您的服务器规格。Select your tablesDry run

Note: Any time you search/replace there\'s a chance you could cause massive problems to your website. Hence step one, back up your website. If something goes wrong, you have a way to restore your data.

SO网友:Johansson

您必须将所有流量从HTTP重定向到HTTPS。重写规则可以为您做到这一点。在您的.htaccess 文件:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{ENV:HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

# BEGIN WordPress
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
也有一些插件可以为您做到这一点,例如Easy HTTPS Rediction.

SO网友:Francesco Mantovani

我用过Better Search ReplaceReally Simple SSL 获胜者是:

Really Simple SSL

只需这样做:

安装它激活它允许SSL完成

它还修复了图像重定向的所有问题

SO网友:Andy

安装此插件:https://wordpress.org/plugins/http-https-remover/

尽管名称为HTTP/HTTPS Remover,但最新版本将强制所有HTTP转换为HTTPS,并且您的混合内容警告将消失。

SO网友:fwho

上周五,我刚刚将公司网站移至仅安全版本。我用了Really Simple SSL Plugin 然后在我的中添加了301重定向。htaccess文件。

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
别忘了在中验证站点的HTTPS版本Search Console / Webmaster Tools

相关推荐

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

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