在WordPress档案上强制使用SSL

时间:2015-05-16 22:13:41

标签: wordpress ssl https archive

我正在使用WordPress HTTPS (SSL)插件通过https运行我的网站,并更新了“设置”菜单下的“WordPress地址”和“网站地址”字段以反映这一点。

所有页面和帖子都通过安全连接运行,但归档(由于自定义帖子类型而大量使用)不会。其他更传统的归档类型(如标记归档)的行为类似。

由于这些是伪页面(并且没有物理位置来调整WP管理员中的设置),有没有办法强制这些在SSL上运行?有没有我错过编辑的技巧.htaccess?

非常感谢提前

1 个答案:

答案 0 :(得分:1)

你真的不需要使用该插件。并且,还有其他一些事项需要检查以修复存档和自定义帖子类型缺少SSL。

取消激活插件,清除缓存,然后在WordPress http的两个网址设置中将https更改为Dashboard>>Settings>>General并保存。

然后通过将这些重写规则放在.htaccess中的WordPress重写块之上,强制SSL和www用于非SSL传入流量:

RewriteEngine on

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^example\.com [NC] 
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

这将照顾所有WordPress网址,并且也应该处理自定义帖子类型。

但请检查您在powers.php或其他主题文件中的CPT函数是否包含绝对http网址,并删除http:并离开//,即

//fonts.googleapis.com/css?family=OpenSans

之类的

http://fonts.googleapis.com/css?family=OpenSans

检查主题的样式表,查找http相同方式的绝对网址,以及标题链接,即:

<link href='//fonts.googleapis.com/css?family=OpenSans' rel='stylesheet' type='text/css'>

并且,搜索所有帖子/页面内容以将所有http链接更改为https以获取图像和内部链接是个不错的主意。将WordPress网站URL设置更改为https是不够的,因为它不会追溯性地更改帖子/页面内容中的所有链接。使用名为Search RegEx的插件查找/替换帖子/页面内容中的链接。或者,使用名为interconnectit.com WordPress Serialized PHP Search Replace Tool的SQL查找/替换实用程序扫描整个数据库。

最后,使用Firefox(或Firebug)或ChromeSafariIE中的开发人员工具检查导致的不安全元素错误通过图像,脚本等,不通过SSL加载。