随着https的普及,越来越多的网站都从http升级到https。可是启用https配置后,还要进行一连串的操作才可以让我们的网站实现全站https访问。毫无疑问,很多wordpress用户在配置https时都会碰到各式各样的问题,而没法完成wordpress整站开启https访问的配置,下面小编就为wordpress站长详细介绍一下如何把全站资源变成https访问。
1、修改wordpress后台设置地址
打开wordpress后台→设置→常规选项→WordPress地址和站点地址的http都改为https。
通过上图操作现已基本实现wordpress全站https,也就是说网站中绝大多数链接都由wordpress系统自动更改为https,当然也有一些内链或是插件需要手动调整。
2、手动修改正文中的内部链接
一般可以通过更新数据库或者function代码来完成。2种方法中小编更倾向于选择后者,因为要是我们对数据库的更新不正确,会给网站带来毁灭性的影响。这里主要介绍代码的方式,从主题目录中找到function.php文件,加入下列代码:
//转换http为https
add_filter(‘get_header’,’change_ssl’);
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,’//’),’https:’.strstr($siteurl,’//’),$content);
$content = str_replace(‘http:’.strstr($upload_dir[‘baseurl’],’//’), ‘https:’.strstr($upload_dir[‘baseurl’],’//’),$content);
return $content;
}
ob_start(“change_ssl_main”);
}
}
注意:代码中的标点必须是英文形式的。
使用这个方法的好处是:对网站的数据库没有任何影响,添加的代码如果是错误或者无效的,随时可以撤回。亲测网上许多教程的代码都不一定正确,所以选择可逆的代码修改是最为稳妥的办法。
调整完内部链接和图片后,对整站页面进行检查,包括首页、频道页、内容页、模板内容等,确保所有页面在浏览器访问时出现绿色小锁。让人费解的是,做完以上操作后,很多网站仍然是灰色小锁或者灰色小锁加黄色三角符号。通过对页面内容进行检查,发现是图片的问题,很多图片之前上传的时候被标记为绝对地址,而且都是以http开头的。一般需要将数据库的http替换成https,不过此方法拥有较高风险,建议使用代码让wordpress系统在加载图片前替换即可。
在当前主题下的function文件最后添加如下所示代码:
/* 替换图片链接为 https */
add_filter(‘the_content’,’my_content_photo’);
function my_content_photo($content){
if( is_ssl() ){
$content = str_replace(‘http://www.lulinling.com/wp-content/uploads’,’https://www.lulinling.com/wp-content/uploads’,$content);
}
return $content;
}
3、登录和后台开启强制https设置
打开网站根目录→打开wp-config.php文件,在这个文件的末尾添加如下代码:
/* 强制后台和登录使用 SSL */
define(‘FORCE_SSL_LOGIN’, true);
define(‘FORCE_SSL_ADMIN’, true);
4、检查网站所有页面是否全都调整为https
尤其是手动添加的内链以及网站上线前通过临时域名上传的图片,必须手动修改。
5、Wordpress整站301重定向
要是整站https已经实现,就可以给网站做整站301将http重定向到https,以保留网站原来的权重。以Apache服务器为例,直接在网站根目录的.htaccess文件添加以下代码:
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
访问http链接,看是否301跳转到对应的https页面。
根据上述方法设置,wordpress全站资源变成https的工作就全部完成了。为了让百度搜索端可以及时展现网站https资源,建议在百度搜索资源平台https认证工具进行认证,具体认证方法将于下一篇文章介绍。