[收起] 文章目录

当你已经开启全站SSL安全连接,当刚开始开启https访问的时候,发觉所有的链接和内容还是通过http访问的,考虑到搜索引擎目前收录的都是 HTTP 链接,那么如果不做点什么的话恐怕这张 SSL 证书将会毫无用处。
重定向HTTP到HTTPS
我们可以使用多种方法301重定向到https链接,目前国内百度是宣称可以支持https链接,而且可以更好的排名,而Google早些年就说支持了。

这里介绍使用.htaccess文件做重定向的方法,在你博客空间的根目录下,找到 .htaccess 文件,你需要使用Ftp或者远程到服务器编辑它,在里边填入下列代码:


#网站定制化开启 HTTPS 的301重定向
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{HTTP_USER_AGENT} !MSIE/[1-8]\. [NC]
RewriteCond %{HTTP_HOST} www.ruikeedu.com
RewriteRule ^.*$ https://www.ruikeedu.com%{REQUEST_URI} [L,R=301]

替换上面代码中的网址为您的网址,考虑到落后的IE浏览器,我们把IE8以下的版本都排除在外,让它们妥妥的滚去访问 HTTP 吧,省的各种警告烦心。

后台登录SSL访问

虽然有了整站的重定向,但我们不妨还是将 WordPress 本身自带的功能打开,以期更完善的兼容体验,毕竟是301重定向。还是找到你网站根目录里边,这次要修改的文件是 wp-config.php,直接在这个文件的末尾另起一行,追加两行代码:


/* 强制后台和登录使用 SSL */
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

添加的位置也可以是数据库配置后面。

站内链接SSL访问
现在网页和后台都是使用的https协议访问,但是还有一些资源比如图片,他保存在数据库里面,而且WordPress使用的绝对链接,这时候我们可以通过下面的两种方法修改。

数据库替换

如果你确定以后都使用https链接,那么你可以使用数据库替换永久替换内容,替换之前请先备份数据库,以防数据或者替换错误。


update `wp_posts` set post_content = replace(post_content, 'https://www.ruikeedu.com', 'https://www.ruikeedu.com');

PHP替换

修改数据库毕竟比较麻烦和危险,我们也可以使用PHP代码实时替换,不过这样可能运行慢一点,找到当前主题下的 functions.php 文件,编辑文件在里边代码的末尾追加如下代码:


/* 替换图片链接为 https */
function my_content_manipulator($content){
 if( is_ssl() ){
 $content = str_replace('https://www.ruikeedu.com/wp-content/uploads', 'https://www.ruikeedu.com/wp-content/uploads', $content);
 }
 return $content;
}
add_filter('the_content', 'my_content_manipulator');

上面的方法解决了以前的旧链接问题,但是新的文章链接和图片地址任然使用的http链接,这时候我们可以在后台统一修改网站的网址和程序地址。

修改“菜单”当中的所有“自定义链接”为相对路径。
修改“设置”→“常规”里的“站点地址”和“WordPress 地址”为 HTTPS;
修改其他自己手写入的绝对链接地址