随着各大搜索引擎对于SSL https的支持,越来越多的站点启用SSL https模式。小七博客在之前启用过一次,后来取消了,现在又重新启用。至于SSL证书,可以选择阿里或者腾讯免费的,当然也可以花点小钱选择收费的也行。对于SSL如何配置在这里不过多叙述,商业SSL商家一般会提供相应的安装教程或者相关的指导。
下面小七想要说明的是启用SSL之后使用wordpress程序的一些后续工作,也是不得不做的一项必备工作。这里小七博客使用的是LAMP环境,所以下面的301重定向适合于Apache环境。
一、开启https访问 域名301重定向
借助.htaccess文件实现301重定向,编辑网站根目录的.htaccess,加入以下代码:
- RewriteCond %{HTTPS} !on [NC]
- RewriteRule (.*) https://www.xqblog.com%{REQUEST_URI} [R=301,NC,L]
注:文中域名链接请修改为自己的!
二、登录和后台强制开启SSL
修改WP-config.php文件,直接在文件末尾加入以下两行代码:
- define(‘FORCE_SSL_LOGIN’, true);
- define(‘FORCE_SSL_ADMIN’, true);
三、让站内链接支持SSL
上传到空间的附件都被WordPress标记为了绝对链接,一般需要修改数据库,但这种方法比较危险,因此推荐另一种方法
代码法,编辑当前主题下的 function.php 文件,加入以下代码:
- /* 替换图片链接为 https */
- function my_content_manipulator($content){
- if( is_ssl() ){
- $content = str_replace(‘http://xxx.com/wp-content/uploads’, ‘https://xxx.com/wp-content/uploads’, $content);
- }
- return $content;
- }
- 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即可!