你已经开启全站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 */
functionmy_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;
修改其他自己手写入的绝对链接地址