You are here:  Home » PHP » 如何正确地将WordPress从HTTP移动到HTTPS(初学者指南)

您是否希望将WordPressHTTP移至HTTPS并在您的网站上安装SSL证书?我们收到了很多有关此主题的请求,因为Google宣布从2018年7月开始,Chrome浏览器将开始标记所有没有SSL的网站。在本文中,我们将向您展示如何通过添加以下内容将WordPress从HTTP正确移动到HTTPSSL证书。

Moving WordPress from HTTP to HTTPS / SSL

如果您不知道SSL或HTTPS是什么,请不要担心。我们也将解释这一点。

什么是HTTPS?

HTTPS或Secure HTTP是一种加密方法,可以保护用户浏览器和服务器之间的连接。这使得黑客更难以窃听连接。

我们每天都会与不同的网站分享我们的个人信息,无论是购买还是只是登录。

为了保护数据转移,需要创建一个安全的连接。

这就是SSL和HTTPS进来的时候。

每个站点都会获得一个唯一的SSL证书,用于识别目的。如果服务器假装使用HTTPS,并且其证书不匹配,那么大多数现代浏览器都会警告用户连接到网站。

Insecure website warning

现在您可能想知道,为什么我需要移动我的WordPress网站从HTTP到HTTPS特别是如果它是一个简单的博客或小型企业网站,不收取任何付款。

为什么你需要HTTPS和SSL?

去年谷歌宣布了计划通过鼓励网站所有者从HTTP切换到HTTPS来提高整体网络安全性。作为此计划的一部分,他们广受欢迎的Chrome网络浏览器会在2018年7月开始将所有没有SSL证书的网站标记为“不安全”。

Chrome HTTP Not Secure

作为公告的一部分,Google也表示使用SSL的网站也会看到SEO的好处和更高的排名。自去年以来,大量网站已从HTTP切换到HTTPS。

谷歌一直在慢慢推出Chrome中的“不安全”警告。例如,如果有人使用隐身窗口访问HTTP网站,则会将其标记为“不安全”。如果有人在常规模式下访问HTTP网站并尝试填写联系表单或其他表单,那么该网站将被标记为不安全。

当您的读者和客户看到此通知时,它会给他们带来不好的影响您的业​​务印象。

这就是为什么所有网站都需要从HTTP移动到HTTPS并立即安装SSL。

更不用说,如果您想在您的电子商务网站上在线接受付款,那你需要SSL。

Stripe,PayPal Pro,Authorize.net等大多数支付公司都会要求您在接受付款之前建立安全连接。

我们为我们的网站使用SSL,包括WPBeginner,OptinMonster,WPForms和MonsterInsights。

在WordPress网站上使用HTTPS / SSL的要求

在WordPress中使用SSL的要求不是很高。您需要做的就是购买SSL证书,您可能已经免费获得它。

最好的WordPress托管公司为所有用户提供免费的SSL证书:

  • Bluehost
  • SiteGround
  • WPEngine
  • Liquid Web
  • Dreamhost
  • InMotion托管
  • GreenGeeks

更多有关如何获取WordPress网站免费SSL证书的详细信息,请参阅我们的指南

如果您的托管公司未提供免费的SSL证书,那么您需要购买SSL证书。

我们建议使用GoDaddy,因为它们是全球最大的域名注册服务,管理着超过7600万个域名。

通过从他们那里购买SSL证书,您还可以获得迈克菲安全密封为您的网站。

一旦您购买了SSL证书,您将需要请求您的托管服务提供商为您安装。

设置WordPress以使用SSL和HTTPs

在域名上启用SSL证书后,您需要设置WordPress以在您的网站上使用SSL和HTTPs协议。

我们将向您展示两种方法,您可以选择最适合您需求的方法。

方法1:使用插件在WordPress中设置SSL / HTTPS

此方法更容易,建议初学者使用。

首先,您需要安装并激活Really Simple SSL插件。有关更多详细信息,请参阅有关如何安装WordPress插件的分步指南。

激活后,您需要访问设置»SSL 页面。该插件将自动检测您的SSL证书,它将设置您的WordPress站点以使用HTTP。

SSL enabled on a WordPress website

该插件将处理包括混合内容错误在内的所有内容。以下是插件在幕后的作用:

  • 检查SSL证书
  • 将WordPress设置为在URL中使用https
  • 设置从HTTP重定向到HTTPs
  • 查找仍在从不安全的HTTP源加载的内容中的URL并尝试修复它们。

注意:该插件尝试使用输出缓冲技术修复混合内容错误。它可能会对性能产生负面影响,因为它正在加载页面时替换站点上的内容。这种影响仅在第一页加载时出现,如果您使用缓存插件,它应该是最小的。

虽然插件说您可以保留SSL并安全地停用插件,但它不是100%正确。您必须始终保持活动状态处于活动状态,因为停用插件会带来混合内容错误。

方法2:手动设置WordPress中的SSL / HTTPS

此方法要求您手动解决问题并编辑WordPress文件。然而,这是一种永久性且性能更优化的解决方案。这就是我们在WPBeginner上使用的内容。

如果您发现此方法很难,那么您可以聘请WordPress开发人员或使用第一种方法。

作为此方法的一部分,您可能需要编辑WordPress主题和代码文件。如果您之前没有这样做,请参阅我们的指南,了解如何在WordPress中复制和粘贴代码段。

首先,您需要访问设置»常规页面。在这里,您需要通过用https替换http来更新WordPress和站点URL地址字段。

Update WordPress URLs

不要忘记单击“保存更改”按钮来存储您的设置。

保存设置后,WordPress会将您注销,然后系统会要求您重新登录。

接下来,您需要通过添加以下内容将WordPress重定向从HTTP设置为HTTPS以下代码到您的.htaccess文件。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

如果您使用的是nginx服务器(大多数用户不是),那么您需要在配置文件中添加以下代码以从HTTP重定向到HTTPS:

server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}

不要忘记用您自己的域名替换example.com。

通过执行这些步骤,您将避免WordPress HTTPS无法正常工作的错误,因为WordPress现在将使用https加载整个网站

如果要在WordPress管理区域或登录页面上强制使用SSL和HTTPS,则需要在wp-config.php文件中配置SSL。

只需在上面添加以下代码“就是这样,停止编辑!”你的wp-config.php文件中的行:

define("FORCE_SSL_ADMIN", true);

这行允许WordPress强制在WordPress管理区域中使用SSL / HTTP。它也适用于WordPress多站点网络。

执行此操作后,您的网站现已完全设置为使用SSL / HTTPS,但您仍会遇到混合内容错误

这些错误是由仍使用URL中的不安全HTTP协议加载的源(图像,脚本或样式表)引起的。如果是这种情况,那么您将无法在网站的地址栏中看到安全的挂锁图标。

Not secure

许多现代浏览器会自动阻止不安全的脚本和资源。您可能会在浏览器的地址栏中看到挂锁图标,但会显示相关通知。

Insecure content blocked

您可以使用Inspect工具找出通过不安全协议提供的内容。混合内容错误将在控制台中显示为警告,其中包含每个混合内容项的详细信息。

Mixed content errors displayed in browser console

您会注意到大多数URL是图像,iframe和图像库,而有些是由您加载的脚本和样式表WordPress插件和主题。

修复WordPress数据库中的混合内容

大多数错误的URL将是存储在WordPress数据库中的图像,文件,嵌入和其他数据。我们先解决它们。

您需要做的就是在以http开头的数据库中查找旧网站网址的所有提及,并将其替换为以https开头的新网站网址。

您可以通过安装和激活Better Search Replace插件轻松完成此操作。有关更多详细信息,请参阅有关如何安装WordPress插件的分步指南

激活后,您需要访问工具»更好的搜索替换页面。在“搜索”字段下,您需要使用 http 添加您的网站网址。之后,在“替换”字段下添加https的网站网址。

Search and replace

在此之后,您将看到所有WordPress数据库表。您需要选择所有这些以进行彻底检查。

最后,您需要取消选中“Run as dry run?”选项旁边的框,然后单击“运行搜索/替换”按钮。

该插件现在将在您的WordPress数据库中搜索以http开头的网址,并将其替换为安全的https网址。可能需要一段时间,具体取决于您的WordPress数据库大小。

修复WordPress主题中的混合内容错误

导致混合内容错误的另一个常见罪魁祸首是您的WordPress主题。遵循WordPress编码标准的任何体面的WordPress主题都不会导致此问题。

首先,您需要使用浏览器的Inspect工具来查找资源以及从哪里加载资源。

Using inspect tool to find mixed content error

之后,您需要在WordPress主题中找到它们并用https替换它们。对于大多数初学者来说,这将有点困难,因为您将无法看到哪些主题文件包含这些URL。

修复由插件引起的混合内容错误

某些混合内容资源将由WordPress插件加载。遵循WordPress编码标准的任何WordPress插件都不会导致混合内容错误。

我们不建议编辑WordPress插件文件。相反,您需要联系插件作者并让他们知道。如果他们没有回复或无法修复,那么您需要找到合适的替代品。

注意:如果由于某种原因,您仍然遇到混合内容错误,那么我们建议您暂时使用Really Simple SSL插件,以便在您在暂存网站上修复问题或聘请开发人员时,您的用户不会受到影响。

将您的HTTPS站点提交到Google Search Console

Google等搜索引擎将https和http视为两个不同的网站。这意味着您需要让Google知道您的网站已经移动以避免任何SEO问题。

为此,您只需转到Google Search Console帐户,然后点击“添加媒体资源”按钮即可。

Add https site as a new property in Google Search Console

这将弹出一个弹出窗口,您需要添加网站的新https地址。

Add your https URL

之后,Google会要求您验证您网站的所有权。有几种方法可以做到这一点,选择任何方法,您将获得验证您的网站的说明。

Verify your website

您的网站经过验证后,Google会在此处开始显示您的搜索控制台报告。

您还需要确保在Search Console中添加了https和http版本。

这告诉Google您希望将您网站的https版本视为主要版本。结合您之前设置的301重定向,Google会将您的搜索排名转移到您网站的https版本,您很可能会看到搜索排名的改进。

我们知道我们在切换时已经做​​了从http到https的网站。

我们希望本文能帮助您在WordPress中添加HTTPS和SSL。您可能还希望看到我们的终极WordPress安全指南,其中包含一步一步的说明,以确保您的WordPress网站安全。