Cloudflare 灵活的 WordPress HTTPS
WordPress HTTPS with Cloudflare Flexible
我有一个站点,我使用 Cloudflare 的 "Flexible" SSL 将其转换为 https。这意味着我无需购买 SSL 即可获得向用户显示 https / 安全的好处(Cloudflare 的用户是安全的,而 cloudflare 对我的服务器则不是)。
我设置了一个自动强制使用 https 的页面规则。没问题。我在一个目录下安装了 WordPress,发现到处都是混合内容错误。首先,由于混合内容,WordPress 安装没有任何效果。所以我暂时禁用了安装WordPress的规则。
现在,如果我将 WordPress 数据库中 wp_options table 中的 siteurl 和 home 更改为 https,并启用我的强制 https rul,/wp-admin 会陷入无限循环并且什么都不让我做。
我做错了什么?我所要做的就是在我网站的其余部分使用 WordPress over https。
WordPress 没有意识到请求是通过客户端的 HTTPS 发出的,因为 CF 向您发出的请求只是 HTTP。
Cloudflare does provide an extra header、X-Forwarded-Proto
如果请求是通过 HTTPS 的 运行,则将设置为 https
。你可以只添加
if(array_key_exists("HTTP_X_FORWARDED_PROTO", $_SERVER) && $_SERVER["HTTP_X_FORWARDED_PROTO"] == "https") {
$_SERVER["HTTPS"] = "on";
}
到您的 wp-config.php 以通知 WP 该请求应该被视为通过 HTTPS 传入。
如果您更喜欢使用插件,Cloudflare 本身的 Cloudflare Flexible SSL takes care of that. The Cloudflare plugin 也可以解决这个问题,以及更多(缓存清除,从 WP、WAF 更改 CF 设置)。
您真的应该在整个请求过程中使用 SSL。如果不想走自签名路线,可以使用CF的免费Origin Certificate。
我有一个站点,我使用 Cloudflare 的 "Flexible" SSL 将其转换为 https。这意味着我无需购买 SSL 即可获得向用户显示 https / 安全的好处(Cloudflare 的用户是安全的,而 cloudflare 对我的服务器则不是)。
我设置了一个自动强制使用 https 的页面规则。没问题。我在一个目录下安装了 WordPress,发现到处都是混合内容错误。首先,由于混合内容,WordPress 安装没有任何效果。所以我暂时禁用了安装WordPress的规则。
现在,如果我将 WordPress 数据库中 wp_options table 中的 siteurl 和 home 更改为 https,并启用我的强制 https rul,/wp-admin 会陷入无限循环并且什么都不让我做。
我做错了什么?我所要做的就是在我网站的其余部分使用 WordPress over https。
WordPress 没有意识到请求是通过客户端的 HTTPS 发出的,因为 CF 向您发出的请求只是 HTTP。
Cloudflare does provide an extra header、X-Forwarded-Proto
如果请求是通过 HTTPS 的 运行,则将设置为 https
。你可以只添加
if(array_key_exists("HTTP_X_FORWARDED_PROTO", $_SERVER) && $_SERVER["HTTP_X_FORWARDED_PROTO"] == "https") {
$_SERVER["HTTPS"] = "on";
}
到您的 wp-config.php 以通知 WP 该请求应该被视为通过 HTTPS 传入。
如果您更喜欢使用插件,Cloudflare 本身的 Cloudflare Flexible SSL takes care of that. The Cloudflare plugin 也可以解决这个问题,以及更多(缓存清除,从 WP、WAF 更改 CF 设置)。
您真的应该在整个请求过程中使用 SSL。如果不想走自签名路线,可以使用CF的免费Origin Certificate。