其他分享
首页 > 其他分享> > 快速申请SSL证书,WordPress全站开启HTTPS

快速申请SSL证书,WordPress全站开启HTTPS

作者:互联网

随着HTTP明文协议的弊端不断浮现,以及互联网推出的多项的政策,HTTPS正逐步取代HTTP,成为主流的传输协议。同时SSL证书也成为了网站设置HTTPS的最常见的解决方法,但在部署SSL证书的过程中,很多网络用户都会遇到不同的问题,无法完全正确的部署SSL证书。

 

方法一:传统方式将 WordPress 开启整站 HTTPS 协议

1.修改wordpress后台配置中的地址改为https版本

技术分享

通过上面的设置,绝大部分导航中的链接就由wordpress系统自动改为HTTPS版本。ssl证书申请

2、对于正文中的内部链接需要手工修改,修改的方法有两种:

1)直接在数据库中更新,

对于数据库不熟悉的站长不推荐这种方法,对数据库错误的更新对网站可能是毁灭性的打击,建议更新前最好备份数据库。

2)利用wordpress提供的api来重写链接。在使用的主题(themes)的目录下的 function.php加入如下代码:

//转换http为https

function change_ssl(){

if( is_ssl() ){

function change_ssl_main ($content){

$siteurl = get_option(‘siteurl’);

$upload_dir = wp_upload_dir();

$content = str_replace( ‘http:’.strstr($siteurl, ‘//’), strstr($siteurl, ‘//’), $content);

$content = str_replace( ‘http:’.strstr($upload_dir[‘baseurl’], ‘//’), strstr($upload_dir[‘baseurl’], ‘//’), $content);

return $content;

}

ob_start(“change_ssl_main”);

}

}

add_filter(‘get_header’, ‘change_ssl’);

这个方法优点是可逆,不会对网站的数据库有什么影响,可以使网站在HTTP和HTTPS之间自由转换,推荐使用这种方法。

调整完内部链接后,检查整个网站的页面,包括首页,栏目页,内容页,sitemap,页面head部分内容,比如:css,js,canonical等,是否都转换成了HTTPS版本。

方法二、代码方式让 WordPress 开启整站 HTTPS 协议

我们都知道,我们如果使用了 WordPress 的多媒体上传和插入图片附件的时候,附件都被 WordPress 标记为了绝对链接,一般需要修改数据库,但这种方法子凡是非常不推荐的,对于不是非常熟悉数据库的同学们估计网站直接被毁也是可能的,所以子凡在这里推荐一种自己正在使用和即将在 Fanly 主题 2.0 支持的一种方法。

以下代码已于 2017/2/5 更新,不仅仅支持 WordPress 站内链接支持 HTTPS 协议,支持多域名的多媒体附件 HTTPS 协议,同时也新增方法二相对链接功能支持。

老规矩,编辑当前主题下的 functions.php 文件,加入以下代码:

代码一:HTTPS 绝对链接替换

//WordPress SSL at 2016/12/29 update

add_filter(‘get_header’, ‘fanly_ssl’);

function fanly_ssl(){

if( is_ssl() ){

function fanly_ssl_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(“fanly_ssl_main”);

}

}

代码二:HTTPS 相对链接替换

//WordPress SSL

add_filter(‘get_header’, ‘fanly_ssl’);

function fanly_ssl(){

if( is_ssl() ){

function fanly_ssl_main ($content){

$siteurl = get_option(‘siteurl’);

$upload_dir = wp_upload_dir();

$content = str_replace( ‘http:’.strstr($siteurl, ‘//’), strstr($siteurl, ‘//’), $content);

$content = str_replace( ‘http:’.strstr($upload_dir[‘baseurl’], ‘//’), strstr($upload_dir[‘baseurl’], ‘//’), $content);

return $content;

}

ob_start(“fanly_ssl_main”);

}

}

标签:全站,strstr,ssl,upload,content,SSL,siteurl,WordPress,dir
来源: https://www.cnblogs.com/weikeyun32/p/15800816.html