Chinaunix首页 | 论坛 | 博客
  • 博客访问: 147754
  • 博文数量: 340
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 3405
  • 用 户 组: 普通用户
  • 注册时间: 2021-05-14 14:39
文章分类

全部博文(340)

文章存档

2023年(69)

2022年(144)

2021年(127)

我的朋友

分类: 云计算

2022-01-14 10:23:14

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

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

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

技术分享

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

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

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

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

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”);

}

}

阅读(523) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~