如何在 WordPress 中将图像 URL 从 HTTP 更改为 HTTPS

最近,我将此网站移至托管在 WordPress CMS 上的 HTTPS / SSL。从 HTTP 到 HTTPS 的迁移很顺利,永久重定向到 HTTPS 也很成功。传播后不久,HTTP 页面被重定向到它们的 HTTPS 等价物,并显示一个绿色的挂锁标志。唯一的问题是大多数 HTTPS 页面都显示混合内容警告。

由于此类警告,页面不会显示安全标记(又名挂锁),而是显示“您与此站点的连接不完全安全”或“此连接不是私有的”。

当页面资源链接到 HTTP URL 而不是 HTTPS 时,就会出现这个问题,从而将它们标记为不安全元素。混合内容警告通常是由添加到仍在使用 HTTP URL 加载的页面上的图像引起的。此问题并非源于 SSL 设置本身,需要在迁移到 HTTPS 的过程中进行修复。

我在大量资源中进行了大量搜索,以找到一种在 WordPress 中进行 SSL 迁移后将图像链接从 HTTP 更新为 HTTPS 的精确方法。但是,我找不到可以帮助初学者轻松完成这项技术任务的单一指南。经过多次头脑风暴和大量文章,我终于找到了一个简单的解决方案来修复 HTTPS 页面上的不安全错误。

在 WordPress 中将图像更新为 HTTPS 的指南

我将保持本指南简单明了,以免新手像我一样感到困惑。

我们将使用“更好的搜索替换” WordPress 插件,包含类似插件中的最佳功能。您可以在不登录 phpMyAdmin 的情况下执行整个任务来运行任何 SQL 查询,如果出现任何问题,这些查询可能会弄乱您的站点。

在继续之前,请注意本教程适用于已设置 301重定向 并且在他们的网站或博客上仅使用 HTTPS 协议。虽然这在大多数情况下都有效,但如果问题仍然存在,还需要考虑其他因素。

1. 将 WordPress 主页和站点 URL 更改为 HTTPS

转到您的 WordPress 仪表板 > 设置 > 常规。现在将 WordPress 地址和站点地址 URL 更改为 HTTPS 而不是 HTTP。 (参考图片)

这使得 WordPress 自己处理重定向。此外,WordPress 应用程序和网站中的所有内部链接都将设置为其等效的 HTTPS。这将说明网站的每一部分都是加密的内容。可以肯定的是,您可以将以下规则添加到您的 .htaccess 文件中。

重写引擎开启

RewriteCond %{HTTP:X-Forwarded-SSL} !on

RewriteRule ^(.*)$ //%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

此 301 重定向将确保将任何 HTTP 请求重定向到 HTTPS。

2. 将媒体资产(图像、内部链接)从 HTTP 更改为 HTTPS

进入主要步骤。您现在需要用 HTTPS 替换 WordPress 数据库中所有旧的 HTTP URL。这意味着将手动(在帖子或页面中)添加的所有图像文件链接和内部链接更新到 HTTPS,以防止任何不安全的图像警告并修复混合内容错误。但是,无需将指向其他网站的外部链接更新为 HTTPS。

警告: 确保先备份您的数据库。

使用更好的搜索替换插件将 HTTP 替换为 HTTPS

要继续,请安装“更好的搜索替换”WordPress 插件并激活它。

现在转到位于工具部分下的插件页面。在“搜索”字段中,在“替换为”字段中输入您网站 URL 的 HTTP 版本和 HTTPS 版本。在选择表下,向下滚动并选择“wp_posts”表,其中包含图像 URL 以及嵌入在帖子和页面中的 URL。然后取消选中“作为试运行运行?”选项并点击运行搜索/替换按钮。

等待处理发生。您可以稍后查看详细信息,例如找到的更改数量和特定表的更新行。

笔记:如果在处理过程中出现错误,请转到“设置”选项卡并尝试将“最大页面大小”值减小到 8000 到 10000 左右的任何值。

而已!您网站的嵌入链接和图像 URL 的 HTTP 版本现在应该使用 HTTPS 版本进行更新。

要确认,只需打开博客文章并复制文章中的图片地址或查看页面来源。图像 URL 现在应该显示 HTTPS 版本,您现在应该在地址栏旁边看到一个安全挂锁。

额外提示: 成功将HTTP替换为HTTPS后,即可移除插件。

找出 HTTPS 站点未显示绿色挂锁的原因

请注意,某些链接已损坏或不可用的页面(例如过期的 CDN)可能仍会导致内容混合。您可以使用 Chrome 中的检查元素功能来识别此类页面上的不安全元素,或者仅使用whynopadlock.com 轻松找出启用 SSL 的页面上的不安全项目。

参考:查看 Michael Bely 的这篇详细文章

标签: 博客教程WordPress