如果您在 WordPress 网站上看到混合内容警告,请不要惊慌,它是一个常见警告。即使您安装了 SSL(安全套接字层)证书,也可能在任何网站上发生这种情况。
WordPress Mixed Content混合内容警告不会阻止您的网站在页面上显示内容。但是,您需要在看到警告后立即解决它,因为它会对您网站的 SEO 排名产生负面影响。
幸运的是,解决警告非常简单。在本指南中,我们将向您展示 4 种方法,您可以轻松解决WordPress 网站上的混合内容问题。
什么是WordPress Mixed Content混合内容?
混合内容是当您网站上的资源或链接同时含有 HTTP 和HTTPS连接时产生。
如果您的 WordPress 网站有SSL 证书,您会在浏览器的网站地址栏旁边看到一个挂锁图标。单击挂锁时,您会在浏览器上找到“连接安全”通知。
安全 SSL 挂锁表明与站点的连接是安全的,这意味着攻击者无法访问用户在您的网站上提供的任何信息,例如密码或信用卡信息。
但是,如果您的某些站点 URL 是使用不安全的 HTTP 链接加载的,则意味着您的页面上存在混合内容。这将导致您的浏览器上没有挂锁或挂锁图标损坏,并通知您与该站点的连接不完全安全。
这可能产生问题,因为搜索引擎如谷歌要求所有站点都使用 HTTPS 传输内容。如果 Google 检测到您网站上的某些内容使用 HTTP 连接,则可能会对您的网站产生负面影响网站的搜索引擎优化.
此外,如果您正在运行网上商城如果出现混合内容警告,您的用户会发现很难在您的网站上提供他们的信用卡详细信息。
WordPress中混合内容的常见原因
WordPress 中的混合内容错误发生在移动您的网站从HTTP 到 HTTPS。即使在您成功安装后,您网站上的某些资源仍可能保留其 HTTP 链接SSL在您的网站上。
其次,混合内容警告可能是由您网站上的静态文件(如媒体文件或 javascript 文件)引起的。如果您使用绝对 URL 链接到您的网站文件,那么您可能还会在您的网站上遇到混合内容警告。
此外,绝对路径也可能是由您在 WordPress 网站上安装的插件引起的。
最后,如果您将 URL 硬编码为您页面上的图片或在 URL 中使用 HTTP 连接的小部件(例如http://yoursite.com/photo.jpg)。
如何查找混合内容警告
之前我们提到,在您的站点地址旁边看到打开的挂锁或没有挂锁图标表示混合内容错误警告。但是,定位导致错误的链接或资源可能有点棘手。
幸运的是,您可以通过多种不同的方式在浏览器上找到它们。在这里,我们将分享两种在 WordPress 网站上查找包含混合内容的文件或链接的简单方法。
第一种方法是利用浏览器中的开发者菜单。如果您使用的是 Google Chrome 浏览器,您可以使用 chrome devtools 查看您网站中的所有混合内容错误。
在挂锁图标损坏的页面上,只需右键单击并选择“检查”即可打开开发人员工具。
现在,单击控制台选项卡。您会发现加载网页时出现的所有错误和警告。
之后,找到具有混合内容标题的错误,然后检查使用 HTTP 连接的资源的链接。
或者,您可以使用在线工具,例如为什么没有挂锁?检查您网站上的混合内容警告。
为此,请使用上面的链接访问他们的网站。
在框中输入您的站点地址,然后单击测试页。
如果您的网站上没有混合内容警告,您将看到类似于下图中的结果。
但是,如果您网站上的某些内容使用 HTTP 连接,那么您将看到混合内容警告,其中包含导致错误的资源链接,如下所示。
如何轻松修复 WordPress混合内容问题
了解导致您网站上的混合内容错误的文件/链接是排除警告的最重要步骤。此外,我们假设您已经有一个有效的SSL证书安装在您的网站上。
使用 SSL Insecure Content Fixer
您可以在您的网站上修复混合内容警告的一种简单方法是使用SSL Insecure Content Fixer插件。该插件有助于解决 WordPress 网站上的不安全链接或文件。
它具有不同级别的操作,您可以从中进行选择。默认为简单级别。
使用简单级别,插件将遍历您的站点并检查样式表、脚本和图像中的混合内容错误。
如果有混合内容,它将解决问题。但是,如果您将 URL 硬编码为帖子或页面上的图像,则简单级别可能无法在您的站点上解析它。
为此,您将需要尝试更高级别的修复。以下是 SSL 不安全内容修复程序附带的其他级别。
- 内容:除了简单级别获得的所有功能外,此级别还将进一步扫描您的帖子和页面以查找不安全的内容。此外,它将浏览您的文本小部件中可用的资源。
- 小部件:使用此级别,您可以获得上述简单和内容级别的所有功能。此外,它将扫描您的 WordPress 网站上所有可用的小部件。如果您的任何小部件上有不安全的内容,插件将解决它。
- 捕获:此级别遍历页面上的所有内容。从页眉到页面内容,再到页脚。它会执行彻底检查并修复您网站上任何不安全内容的条目。
- 全部捕获:包括上述所有级别的所有功能。此外,它将通过您网站上的 AJAX(异步 JavaScript 和 XML)调用。但是,这可能会影响您的网站性能。
如何使用 SSL Insecure Content Fixer
要开始使用,请在您的 WordPress 管理仪表板上安装并激活该插件。之后,转到Settings > SSL Insecure Content。
现在,选择您希望在您的网站上应用的级别。
然后向下滚动并单击“保存更改”按钮。
旁注:随着修复级别的提高,对您网站的影响也会增加。这意味着,当您选择 Capture All 级别时,它可能会影响您的站点速度。
因此,最好从简单级别开始,如果上一个级别不能完全修复您网站上的警告,则逐步升级到高级级别。
测试和替换 HTTP 文件
是硬编码图像还是脚本是您的 WordPress 网站上出现混合内容警告的原因?一个简单的解决方法是将您的 URL 从 HTTP 更改为安全的 HTTPS 版本。
您可以通过直接编辑主题文件来手动替换文件。然而,像“Better Search Replace”或“Elementor Page Builder”这样的插件可以让这个过程变得非常简单。
建议备份您的站点和数据库在继续之前。
使用更好的搜索替换
该插件允许您使用搜索和替换功能直接更新您的数据库表。
因此,您可以使用非安全 http 协议搜索所有条目,并将其替换为安全 https 协议。
首先,您需要安装并激活更好的搜索替换WordPress 网站上的插件。
激活插件后,转到工具 > 更好的搜索替换,然后单击搜索/替换选项卡。
现在,使用 HTTP 格式(例如 http://yoursite.com)在“搜索”文本框中输入您的网站地址。
在“替换为”文本框中,使用安全的 HTTPS 格式 (https://yoursite.com) 键入您的站点地址。
接下来,选择要在其上运行搜索/替换的数据库表。这应该是 wp_options、wp_posts、wp_terms、wp_term_relationships 和 wp_term_taxonomy 表。
要选择多个表,请按住“ ctrl ”键,然后单击表名。
您可以启用试运行选项。启用后,它将向您展示您所做的更改将如何影响您的数据库,然后再提交更改。
最后,单击运行搜索/替换按钮。
使用 Elementor 页面构建器
Elementor 插件使您能够使用其拖放功能构建 WordPress 网站。但是,它还具有一项功能,可让您查找和替换网站上的不安全链接。
如果您已经安装了 Elementor,则最好使用此选项。如果没有,请使用上面的Better Search Replace插件。
在您的仪表板中,转到Elementor > 工具,然后单击替换 URL选项卡。
现在,在旧 URL 文本框中使用 HTTP 格式输入您的网站。然后在新的 URL 文本框中输入您网站的安全 HTTPS 版本。
然后,点击Replace URL
如果使用上述任何插件修复了 WordPress 网站上的混合内容警告,那就太好了。但是,如果您仍然看到它们,则可能是硬编码的脚本/图像是原因。为此,您需要手动替换主题文件上的链接。
手动替换 HTTP 文件
有时,当您从外部链接加载脚本时,使用上述插件中的查找和替换功能不会替换脚本 URL。在这种情况下,您可以手动替换主题文件中的不安全链接。
首先,转到外观>主题编辑器并选择标题模板。
现在,键入 CTRL+F 打开搜索框并将导致混合内容警告的链接粘贴到您的网站上。
找到代码行后,将其替换为安全版本的链接(即将 http:// 更改为 https://)。
此外,如果您使用绝对路径链接到网站上的图像或样式表,您可以修改链接以使用相对路径。
例如,如果您的图像具有以下路径“ http://yoursite.com/images/logo.png ”,则可以将其替换为“ /images/logo.png ”,如下图所示。
完成后,单击更新文件。
修改 .htaccess 文件
有时,当您将站点移动到新服务器时,或者您刚刚在服务器上安装了 SSL 证书时,某些链接和文件仍会保留旧的不安全 URL。
这可以通过将所有请求从不安全的端口重定向到安全的 HTTPS 端口来轻松解决。这可以在您服务器上的 .htaccess 文件中设置。
首先,使用 FTP 客户端连接到您的站点。查看本指南以了解如何使用 FTP.
将您的站点连接到 FileZilla FTP 后,双击包含您的站点文件的目录。
在该目录上,双击 .htaccess 文件以下载该文件的备份。
现在,右键单击文件,然后选择查看/编辑。
使用文本编辑器打开文件,然后删除文件中的所有内容。
我们将使用新规则重写整个文件,该规则将重定向任何不是来自安全端口(在本例中为端口 443)的流量。
将下面的代码粘贴到文件上。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# 结束 WordPress
保存文件,然后将其重新上传到您的服务器。
上面的代码通过重定向来自您网络服务器上不安全 URL 的所有请求来强制您的网站使用 SSL。
使用 CDN 修复混合内容
Cloudflare 等内容交付网络在加快站点速度和防止 SQL 注入方面非常有用。
此外,就像我们上面提到的,大多数CDN向他们的用户提供免费的 SSL 证书。为了Cloudflare用户,可以在您的 SSL/TLS 选项卡下配置这些设置Cloudflare仪表板。
Cloudflare 还有一个设置,可以自动重写您网站上的混合内容。这意味着,如果文件或图像正在使用不安全的 HTTP 连接,它将在页面显示给用户之前转换为安全的 HTTPS 连接。
要在您的 Cloudflare 帐户上激活此功能,请在 SSL/TLS 部分下,单击Edge Certificates 选项卡。
现在,向下滚动并找到“自动 HTTPs 重写”部分,然后切换开关以打开此功能。
就是这样。您的混合内容问题应该得到解决。
结论 – WordPress 混合内容
通过 HTTPS 运行您的网站有助于保护您的 WordPress 网站和用户数据。但是,您的网站有时可能会遇到混合内容警告。
这些警告通常对您的网站不利,因为用户往往会失去对未完全安全的网站的信任。在本指南中,我们向您展示了如何轻松修复 WordPress 中的混合内容警告。
希望本文能帮助您解决WordPress网站上碰到的混合内容警告错误,您也许还想看看我们的如何轻松创建 WordPress 多语言网站或者WordPress 速度优化的完整指南。