我正在使用WordPress HTTPS (SSL)插件通过https运行我的网站,并更新了“设置”菜单下的“WordPress地址”和“网站地址”字段以反映这一点。
所有页面和帖子都通过安全连接运行,但归档(由于自定义帖子类型而大量使用)不会。其他更传统的归档类型(如标记归档)的行为类似。
由于这些是伪页面(并且没有物理位置来调整WP管理员中的设置),有没有办法强制这些在SSL上运行?有没有我错过编辑的技巧.htaccess?
非常感谢提前
答案 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)或Chrome或Safari或IE中的开发人员工具检查导致的不安全元素错误通过图像,脚本等,不通过SSL加载。