wordpress开启全站https(由http转换为https)
- 2019-03-13 10:56:35
- 3,184 次阅读
- 8
https传输协议具有安全加密功能,有效防止网站流量被劫持,更好的保护用户隐私等特点。在seo方面,使用https的网站页面更安全可靠,百度会优先收录展示,排名上会更靠前。这些优势是http协议无法比拟的。因此用户采用https协议能够更好的运营自己的网站。
若用户需要使用https协议,那么需要配置安装SSL证书,对于很多服务商提供了一年免费使用的期限,并且申请和操作起来挺方便。
在上一篇文章有个小问题,那个代码只能开启正文图片url的https,但对于首页中缩略图中的图片的url仍然是http的形式,所以今天将整个站点都采用https的形式,包括js,css,音频,图片等的url地址统一是https的协议。那就开始行动起来吧!
方法一:从根本上开启wordpress全站https协议
(1)通过wordpress后台的“设置”中“常规”将“WordPress 地址(URL)”、“站点地址(URL)”两个地址的 http 修改为 https 并保存。
(2)为了保证wordpress整个站点中的url全部更改为https协议,需要用到数据库查询语句进行替换,如下面的代码:
update wp_posts set post_content = replace(post_content, 'https://www.maxing128.com','https://www.maxing128.com.com');
这种方法是直接对数据库进行了操作,如果哪天你确定不再使用https协议了,还需要反过来进行操作。需要谨慎操作,建议在更改前,对数据库进行备份。
方法二:函数替换url地址开启wordpress全站https协议
如果使用方法一,嫌麻烦,怕操作有风险,那么可以使用函数代码替换的方式,在functions文件中加入下列代码:
add_filter('get_header', 'change_http_to_https'); function change_http_to_https(){ if( is_ssl() ){ function change_http_to_https_main ($content){ $siteurl = get_option('siteurl'); $upload_dir = wp_upload_dir(); $content = str_replace( 'http:'.strstr($siteurl, '//'), 'https:'.strstr($siteurl, '//'), $content); $content = str_replace( 'http:'.strstr($upload_dir['baseurl'], '//'), 'https:'.strstr($upload_dir['baseurl'], '//'), $content); return $content; } ob_start("change_http_to_https_main"); } }
重写规则
完成以上步骤之后,就可以访问到https的URL了,但是http的URL还是能够被访问到。为了https的统一化,这时我们需要做重定向。
在网站的根目录中找到.htaccess的文在,在里面加入下列代码
RewriteEngine On RewriteBase / RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # BEGIN WordPress RewriteRule ^sitemap.xml$ xmlmap.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
301状态检测
使用站长工具进行检测(http://tool.chinaz.com/pagestatus/),结果如下图
百度站长平台https认证
通过百度帐号登录站长平台申请https认证,如下图
文章评论 (0)