• 17630273926

将WordPress网站从HTTP迁移到HTTPS:完整指南

作者:郑州云优化 / 2019-11-14 21:27 / 浏览次数:
将WordPress网站从HTTP迁移到HTTPS:完整指南
最长的时间是,Search Engine Journal WordPress网站在HTTP连接上运行。在Google确认  网站从HTTP 迁移到HTTPS 时不会失去排名之后,我们决定迁移到HTTPS。
就在最近,谷歌将2018年7月设置为HTTPS实施的  截止日期。该公司警告发布商,对于任何HTTP域,Chrome都会在地址栏中显示“不安全”标签。
这意味着迁移到HTTPS如今比以往任何时候都更加重要。
在这篇文章中,我将分享从SEJ网站迁移到HTTPS以及我工作过的许多其他基于WordPress的网站的经验。
我假设您具有  基本的WordPress编码技能,并且已经在服务器上安装了SSL证书,因为大多数托管服务提供商只需  单击即可提供该功能。
WordPress网站结构:概述
开始之前,这里是WordPress网站结构的基本概述。
每个WordPress网站都具有以下文件结构:
wordpress网站文件结构图。1
它还有一个数据库,用于存储网站内容。
数据库结构图2
迁移之前,您必须通过托管服务提供商的备份功能备份您的网站。进行备份很重要,这样在出现问题时可以恢复网站。
您还需要从备份下载文件以在计算机上执行搜索和替换操作。
以下是一些受欢迎的托管服务提供商提供的有关如何执行备份的有用链接:
HostGator
去吧爸爸
蓝主机
从HTTP迁移到HTTPS是什么意思?
迁移是使用等效的HTTPS替换指向您的网站或外部域的HTTP资源链接的任何单个实例的过程。
HTTPS网站尝试加载HTTP资源时,可能会导致内容混合问题。为了避免这种情况,您需要确保以下任何类型的网站资源都没有指向HTTP端点:
图片
JavaScript文件
CSS文件
CSS / JavaScript文件中使用的内部URL
iframe
影片
音讯
表单动作
字型
重要提示: 请记住,您只需要检查插件和主题文件。切勿触摸wp-admin和wp-includes文件夹中的核心文件  。它们已经与HTTPS兼容。严格禁止编辑它们。对这些文件夹中文件的任何更改都可能导致意外错误。
让我们开始迁移过程。(要执行以下步骤,您可以使用Notpad ++,PhpStorm或您自己的其他代码编辑器。我使用ZendStudio。)
注意:您应该始终在登台环境(即staging.example.com)中执行迁移,然后在确保正确完成所有操作后上线。
1.搜索和替换文件
首先,搜索指向您站点的HTTP URL的域实例。
将正则表达式用于“ www” ,不使用“ www” URL大小写,并搜索 http:\/\/(www\.)?yourdomain\.com
在文件中搜索工具图3
(将yourdomain.com替换为您的实际域名。)在进行最终搜索之后,我看到有两个指向我的域HTTP端点的源文件实例。
代码编辑器图4
由于您已经在主机上安装了SSL证书,因此可以安全地将所有域链接替换为其等效的HTTPS。
在文件视图中搜索替换图5
如果您有未在wordpress.org/plugins上托管的定制开发插件,则需要在Plugins文件夹中执行相同的操作。
最佳做法是使用WordPress的内置函数获取主网址-在我们的示例中为  get_home_url()."/some2.js"。这样可以确保始终显示正确的源链接。
我只是指出了最坏的情况,因为您的自定义主题或插件可能无法使用硬编码开发。这不是推荐的编程方式,但是经常发生。
接下来,您还必须照顾指向外部域的HTTP资源。
为此,您需要在Plugins和Active Theme文件夹(在我们的情况下为“ auto-repair”)文件中搜索字符串http://,但要在整个单词中进行匹配(请参见图4)。
这是我的代码编辑器的外观:
搜索工具图(6)
这是我的搜索结果:
代码编辑器图(7)
在浏览器树的右侧,我们可以看到HTTP资源的所有实例。
暂时不要将它们全部替换为HTTPS!这是因为资源指向的外部HTTP域可能未安装SSL证书,并且可能不支持HTTPS连接。
幸运的是,在我们的示例中,链接指向Flickr.com,该网站已安装证书并支持HTTPS连接。对于此实例,我们可以将http://替换为https://。
对于外部资源,您需要手动检查每个实例。
切勿批量更换!
如果在不检查外部域是否支持HTTPS连接的情况下进行批量替换,则您的网站上可能会出现资源中断或图像问题,并且在加载外部资源时会引发错误。
浏览器控制台错误图8
上面的屏幕截图显示了一个实际的问题。您必须调查哪些功能正在使用该资源并对其进行重新编程。
最好的办法是将文件下载到服务器并从您的一侧链接到服务器,这对于图像来说是更好的选择。
但是,并非总是可以这样做。您或者需要重新开发,或者只是放弃该功能。
除了脚本或图像src属性和图像外,您还需要查找以下内容的任何http://实例:
形成动作,例如:  <form action="http://example.com/"> 您可以搜索action =” http://
字体/ CSS文件,例如:  <link rel="stylesheet" type="text/css" href="http://example.com/> 您可以使用此正则表达式  <link * href="http://进行搜索。
假设您浏览了所有文件,让我们继续修复数据库。
2.在数据库中搜索和替换
首先,您必须下载搜索和替换数据库工具。
使用较长的随机文件夹名称(例如“ replace879846513134984451”)将其上传到您的服务器,因为如果有人不小心发现它,则存在安全风险。
如果您导航到yourdomain.com/replace879846513134984451 URL,则会看到以下内容:
在数据库中搜索替换工具图9
同样,在这种情况下,由于已安装SSL证书并且您的域支持HTTPS,因此您需要将所有域HTTP实例替换为HTTPS。
我将regexp http:\/\/(www\.)?yourdomain\.com用于“ www”(http://www.yourdomain.com),而没有(http://yourdomain.com)URL大小写。
在数据库中搜索替换工具图10
这仅修复指向您的域的所有HTTP出现的URL。
如果帖子内容中仍然有指向外部HTTP域的图像,则可以使用名为“ 导入外部图像”的插件  来查找和修复它们。
导入外部图像图11
单击导入按钮将开始将图像从外部网站下载到您的服务器,并将外部图像URL替换为您的域HTTPS。
(注意:请确保您位于服务器的  wp-content文件夹中,  并将权限设置为775以启用脚本上载图像。否则,它可能会失败。)
此过程非常耗资源。加载时可能会导致黑屏问题;它甚至可以关闭您的服务器。
在这种情况下,您可以增加服务器的max_exection_time和memory_limit。大型网站通常会发生此问题。在某些情况下,您将需要高级编码技能来解决这些问题。
作为一般的良好做法,我总是建议通过媒体上传器将外部图像上传到服务器,并避免使用外部URL。当托管外部映像的域到期或删除文件时,外部映像有时会损坏。
假设您能够修复图像,则仍然剩下iframe,视频和音频。
您可以做的第一步也是最简单的步骤,就是对所有知名的视频/音频托管(例如YouTube,Vimeo,SoundCloud等)执行相同的搜索和替换操作(参见图10)。
由于他们支持HTTPS,您可以安全地更换http:\/\/(www\.)?youtube\.com与https://www.youtube.com, http:\/\/(www\.)?vimeo\.com与https://www.vimeo.com等。
对于知名域以外的资源,由于它们通常是大文件,因此无法自动导入它们。您需要通过执行自定义SQL查询来搜索数据库中的内容,以手动查找并修复它们。
这是一个代码段,您可以运行以提取所有包含src =“ http://”的帖子  。
全局$ wpdb; $ results = $ wpdb-> get_results(“从”。$ wpdb-> posts中选择ID。“在哪里(post_content LIKE'%src = \” http://%'或post_content LIKE \“%src ='http:/ /%\“或post_content之类的'%src = http://%'),并且post_status ='publish'和post_type = IN('post','page')按post_date desc的顺序排列,” OBJECT“);
foreach($ results为$ post){echo get_permalink($ post-> ID)。'<br/>';}
(注意:如果要在自定义帖子类型上运行,则可以将帖子类型添加到列表IN('post','page')中,并用逗号分隔。例如,在WooCommerce中,您也可以添加“产品”以扫描产品内容。)
运行此查询后,您将获得具有HTTP源和混合内容问题的所有帖子的列表。
通常,完成后最好进行健全性检查并运行此查询,以确保您没有将任何实例都留给HTTP资源。
另外,手动浏览该网站一段时间并通过Google Chrome控制台检查其是否干净始终是一件好事。
当您确定一切正确后,最后一步是设置301从HTTP URL到HTTPS的重定向。
3.实施重定向
如果您的服务器在Apache上运行,则可以在.htaccess文件中添加以下代码。
实施此步骤时要小心-命令中的任何错误都可能会破坏网站。
将此代码放在最顶层
<IfModule mod_rewrite.c>
RewriteEngine开
RewriteCond%{HTTPS}已关闭
RewriteRule ^(。*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R = 301]
</ IfModule>
另外,您可以使用Easy HTTPS Redirection插件。
4.更新CDN
如果您使用CDN,则应该有一个类似于Google Analytics(分析)的URL设置,您可以在其中将网站更新为HTTPS版本。
每个CDN的迁移是不同的,您需要检查CDN提供程序文档或联系支持人员以获取详细信息。
5.在Google Analytics(分析)中更改URL
您需要在管理>属性>属性设置和管理>视图>视图设置中更改Google Analytics(分析)“网站的网址”设置  。
Google Analytics(分析)网站URl设置 图12:网站URL设置
6.在Search Console中重新提交网站
由于Google将http:// www.example.com和https:// www.example.com视为不同的网站,因此您必须将网站的HTTPS版本重新提交给Google Search Console并声明对该属性的所有权。
谷歌搜索控制台网站网址设置图13:在Search Console中添加属性 
不要忘记重新提交您的站点地图:
站点地图设置图14:重新提交站点地图
或您的拒绝文件:
拒绝链接图15:拒绝链接
结论
迁移到HTTPS并非一帆风顺。
对于小型网站,通常需要几个小时才能完成;而对于大型和大型网站,可能需要几天的时间才能正确完成迁移。
如果您的内容较旧,则很可能包含带有HTTP URL甚至Flash内容的过时的iframe /音频嵌入。
最后一步,请在迁移后密切  监视您的网站,看一切是否运行顺利且没有错误。
希望本文将对您耗时的HTTPS迁移过程有所帮助。
更多HTTPS资源:
Google为HTTPS设置了截止日期,并警告发布商即将升级
HTTP到HTTPS迁移:终极无忧指南
2017年HTTPS状况
您的网站需要哪种类型的SSL证书?
【郑州云优化】郑州SEO、网站建设、网站设计、服务器空间租售、网站维护、网站托管、网站优化、百度推广、自媒体营销、微信公众号
如有意向---联系我们
热门栏目
热门资讯
热门标签

网站建设 网站托管 成功案例 新闻动态 关于我们 联系我们 服务器空间 加盟合作 网站优化

备案号:ICP备*********号 网站地图/sitemap 

公司地址:河南省郑州市郑州云优化 咨询QQ:1774525808 手机:17630273926 电话:17630273926