在 WordPress 档案上强制使用 SSL
Force SSL on WordPress archives
我正在使用 WordPress HTTPS (SSL) 插件通过 https 运行 我的网站,并更新了 'settings' 下的 'WordPress Address' 和 'Site Address' 字段菜单来反映这一点。
所有页面和 posts 运行 通过安全连接,但存档(由于自定义 post 类型,我大量使用它)不会。其他更传统的存档类型,例如标签存档,其行为类似。
因为这些是伪页面(并且没有物理位置来调整 WP 管理员中的设置),是否有任何方法可以通过 SSL 强制这些 运行?我错过了编辑 .htaccess 的技巧吗?
非常感谢
你真的不需要使用那个插件。并且,还有其他几项应该检查以修复档案和自定义 Post 类型缺少 SSL。
停用插件,清除缓存,然后在 WordPress Dashboard>>Settings>>General
的两个 URL 设置中将 http
更改为 https
并保存。
然后通过将这些重写规则放在 .htaccess 中的 WordPress 重写块之上,为 non-SSL 传入流量强制使用 SSL 和 www:
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/ [R=301,L]
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ https://www.example.com/ [R=301,L]
这将处理所有 WordPress URL,并且还应处理自定义 Post 类型。
但请检查 functions.php 或其他主题文件中的 CPT 函数是否绝对 http
URL 并删除 http:
并保留 //
,即
//fonts.googleapis.com/css?family=OpenSans
并且不喜欢
http://fonts.googleapis.com/css?family=OpenSans
检查您主题的样式表中是否有绝对 URL 以相同的方式 http
和 header 链接,即:
<link href='//fonts.googleapis.com/css?family=OpenSans' rel='stylesheet' type='text/css'>
而且,搜索所有 post/page 内容以将所有 http 链接更改为 https 以获取图像和内部链接是个好主意。将 WordPress 站点 URL 设置更改为 https 是不够的,因为这不会追溯更改 post/page 内容中的所有链接。使用名为 Search RegEx to find/replace links in post/page content. Or, use an SQL find/replace utility called interconnectit.com WordPress Serialized PHP Search Replace Tool 的插件扫描整个数据库。
最后,使用 Firefox (or Firebug) or Chrome or Safari or IE 中的开发人员工具来检查由未通过 SSL 加载的图像、脚本等引起的不安全元素错误。
我正在使用 WordPress HTTPS (SSL) 插件通过 https 运行 我的网站,并更新了 'settings' 下的 'WordPress Address' 和 'Site Address' 字段菜单来反映这一点。
所有页面和 posts 运行 通过安全连接,但存档(由于自定义 post 类型,我大量使用它)不会。其他更传统的存档类型,例如标签存档,其行为类似。
因为这些是伪页面(并且没有物理位置来调整 WP 管理员中的设置),是否有任何方法可以通过 SSL 强制这些 运行?我错过了编辑 .htaccess 的技巧吗?
非常感谢
你真的不需要使用那个插件。并且,还有其他几项应该检查以修复档案和自定义 Post 类型缺少 SSL。
停用插件,清除缓存,然后在 WordPress Dashboard>>Settings>>General
的两个 URL 设置中将 http
更改为 https
并保存。
然后通过将这些重写规则放在 .htaccess 中的 WordPress 重写块之上,为 non-SSL 传入流量强制使用 SSL 和 www:
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/ [R=301,L]
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ https://www.example.com/ [R=301,L]
这将处理所有 WordPress URL,并且还应处理自定义 Post 类型。
但请检查 functions.php 或其他主题文件中的 CPT 函数是否绝对 http
URL 并删除 http:
并保留 //
,即
//fonts.googleapis.com/css?family=OpenSans
并且不喜欢
http://fonts.googleapis.com/css?family=OpenSans
检查您主题的样式表中是否有绝对 URL 以相同的方式 http
和 header 链接,即:
<link href='//fonts.googleapis.com/css?family=OpenSans' rel='stylesheet' type='text/css'>
而且,搜索所有 post/page 内容以将所有 http 链接更改为 https 以获取图像和内部链接是个好主意。将 WordPress 站点 URL 设置更改为 https 是不够的,因为这不会追溯更改 post/page 内容中的所有链接。使用名为 Search RegEx to find/replace links in post/page content. Or, use an SQL find/replace utility called interconnectit.com WordPress Serialized PHP Search Replace Tool 的插件扫描整个数据库。
最后,使用 Firefox (or Firebug) or Chrome or Safari or IE 中的开发人员工具来检查由未通过 SSL 加载的图像、脚本等引起的不安全元素错误。