如何为已有WordPress站点安装SSL证书开启全局https访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为已有WordPress站点安装SSL证书开启全局https访问相关的知识,希望对你有一定的参考价值。

安装ssl证书需要在服务器上配置,Apache和nginx的环境都不太一样,具体的步骤也挺多的,所以建议你百度一些详细的教程。

如果你已经安装好SSL证书,针对与WordPress做全局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://zhangzifan.com/wordpress-ssl-link.html 版权归原作者所有。

参考技术A 1、淘宝Gworg获取SSL证书后。
2、安装到自己独立服务器或云服务器,根据自己的环境安装,如果不会安装可以向您的证书签发机构获取安装教材。
3、通过“设置”中“常规”里面把“WordPress地址(URL)”、“站点地址(URL)”两个地址的http修改为https并保存。
4、然后还需要确定的就是通过“设置”中“多媒体”菜单把“文件的完整URL地址”也改为https协议,如果文件的完整URL地址之前是缺省的,那么也就可以不用修改。

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

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

以上是关于如何为已有WordPress站点安装SSL证书开启全局https访问的主要内容,如果未能解决你的问题,请参考以下文章

如何为自己的WordPress站点安装SSL证书开启https访问

如何为自己的WordPress站点安装SSL证书开启https访问

如何为自己的WordPress站点安装SSL证书开启https访问

如何为自己的WordPress站点安装SSL证书开启https访问

有多个WordPress网站该申请哪种DigiCert SSL证书

网站怎么启用SSL安全证书,开启https协议?