首页 文章

使用Cloudflare灵活的WordPress HTTPS

提问于
浏览
0

我有一个网站,我使用Cloudflare的“灵活”SSL转换为https . 这意味着我可以获得向用户显示https / secure的好处,而无需购买SSL(Cloudflare的用户是安全的,cloudflare不是我的服务器) .

我设置了一个自动强制https的页面规则 . 没问题 . 我在一个目录下安装了WordPress,发现整个地方都存在混合内容错误 . 首先,由于混合内容,WordPress安装没有任何作用 . 所以我暂时禁用了安装WordPress的规则 .

现在,如果我将WordPress数据库中的wp_options表中的siteurl和home更改为https,并启用我的强制https rul,/ wp-admin将陷入无限循环并且不会让我做任何事情 .

我究竟做错了什么?我所拥有的就是将WordPress与我网站的其余部分一起通过https .

2 回答

  • 0

    WordPress没有意识到请求是通过HTTPS从客户端发出的,因为来自CF的请求只是HTTP .

    Cloudflare does provide an extra headerX-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 Flexible SSL负责处理 . Cloudflare本身的Cloudflare plugin也负责这一点,以及更多(缓存清除,从WP,WAF更改CF设置) .

  • 1

    您应该在整个请求中使用SSL . 如果您不想使用自签名路线,可以使用CF的免费原产地证书 .

相关问题