全站开启https访问:Apache+WordPress部署SSL修改与301重定向

2017-03-24 admin 15

随着各大搜索引擎对于SSL https的支持,越来越多的站点启用SSL https模式。小七博客在之前启用过一次,后来取消了,现在又重新启用。至于SSL证书,可以选择阿里或者腾讯免费的,当然也可以花点小钱选择收费的也行。对于SSL如何配置在这里不过多叙述,商业SSL商家一般会提供相应的安装教程或者相关的指导。

https

下面小七想要说明的是启用SSL之后使用wordpress程序的一些后续工作,也是不得不做的一项必备工作。这里小七博客使用的是LAMP环境,所以下面的301重定向适合于Apache环境。

一、开启https访问 域名301重定向

借助.htaccess文件实现301重定向,编辑网站根目录的.htaccess,加入以下代码:

  1. RewriteCond %{HTTPS} !on [NC]

  2. RewriteRule (.*) https://www.xqblog.com%{REQUEST_URI} [R=301,NC,L]

注:文中域名链接请修改为自己的!

二、登录和后台强制开启SSL

修改WP-config.php文件,直接在文件末尾加入以下两行代码:

  1. define(‘FORCE_SSL_LOGIN’, true);

  2. define(‘FORCE_SSL_ADMIN’, true);

三、让站内链接支持SSL

上传到空间的附件都被WordPress标记为了绝对链接,一般需要修改数据库,但这种方法比较危险,因此推荐另一种方法

代码法,编辑当前主题下的 function.php 文件,加入以下代码:

  1. /* 替换图片链接为 https */

  2. function my_content_manipulator($content){

  3.     if( is_ssl() ){

  4.         $content = str_replace(‘http://xxx.com/wp-content/uploads’, ‘https://xxx.com/wp-content/uploads’, $content);

  5.     }

  6.     return $content;

  7. }

  8. add_filter(‘the_content’, ‘my_content_manipulator’);

如果直接修改数据库,可以采用如下方法:

网站首页和网站文章之类的URL,对于文章中的一些链接以及图片的URL仍然是旧的URL,如要更新这些URL地址,需要我们手动操作mysql数据库,依次执行以下sql语句:

UPDATE wp_posts SET post_content = replace( post_content, 'http://www.xqblog.com','https://www.xqblog.com');
UPDATE wp_comments SET comment_content = replace(comment_content, 'http://www.xqblog.com','https://www.xqblog.com');
UPDATE wp_comments SET comment_author_url = replace(comment_author_url, 'http://www.xqblog.com','https://www.xqblog.com');

注意:sql执行语句中的http://www.xqblog.com指的是老域名,而https://www.xqblog.com指的是你的新域名,在操作时更改为自己的就行啦!

最后在修改“设置”→“常规”里的“站点地址”和“WordPress 地址”为 HTTPS即可!