使用 CloudFlare 和 OpenShift 以及 WordPress 应用程序进行重定向循环

Posted

技术标签:

【中文标题】使用 CloudFlare 和 OpenShift 以及 WordPress 应用程序进行重定向循环【英文标题】:Redirect loop with CloudFlare and OpenShift and a WordPress application 【发布时间】:2015-12-15 01:31:15 【问题描述】:

我在 OpenShift 上创建了我的 WordPress 应用程序,它响应 URL blog-porta8080.rhcloud.com。

我在 OpenShift 上创建了 2 个别名

我从巴西注册商那里购买了我的域 (porta8080.com.br),该注册商不允许我添加没有像 www 这样的子域的 CNAME 记录。

所以我在 CloudFlare 上创建了一个帐户,注册了我的域并将我的域移动到 CloudFlare DNS 服务器。

然后我向 CloudFlare 添加了 2 条 CNAME 记录

我什至安装了他们说对我有帮助的 CloudFlare 插件

https://wordpress.org/plugins/cloudflare/

但是当我转到http://porta8080.com.br 时,由于重定向循环错误,它无法加载页面。我在 chrome 和 Firefox 上进行了测试,都抛出了同样的错误。 Chrome 说“ERR_TOO_MANY_REDIRECTS”并检查请求,它给了我几个“301 错误:永久移动”

wp-admin 页面没有给我错误。我唯一能想到的是它自己的 .htaccess 文件。

这是我的 .htaccess(Openshift 中的那个可能没有 blog/ 部分,我只是更改了两者的永久链接,这就是我机器上生成的 .htaccess)

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule . /blog/index.php [L]
</IfModule>

# END WordPress

有什么想法吗?

@编辑

我的 .htaccess 肯定有问题。我评论了它并在索引文件上放了一条消息,它通过 www 和没有它都到达那里。

你猜为什么?

【问题讨论】:

您解决了这个问题吗?我在 Openshift 上的 Rails 应用程序遇到了同样的问题... 【参考方案1】:

当您将 CloudFlare 的灵活 SSL 选项与 WordPress 一起使用时,这是一个有趣的问题。 WordPress 的核心是一个is_ssl 函数,它不考虑反向代理。因此,当您重定向到 SSL 时,您可以获得a redirect loop if using Flexible SSL。

解决此问题的最简单方法是在 Apache 上发送 install Mod_cloudflare。

相反,您可以在 wp-config.php 文件中添加 if 语句来解决此问题:

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') 
    $_SERVER['HTTPS'] = 'on';

如果您使用此方法而不是安装 Mod_cloudflare,请确保您使用“X-Forwarded-Proto”标头而不是 SSL 进行任何重定向。

【讨论】:

以上是关于使用 CloudFlare 和 OpenShift 以及 WordPress 应用程序进行重定向循环的主要内容,如果未能解决你的问题,请参考以下文章

使用 Google Domains 和 Cloudflare 时转发电子邮件 [关闭]

我可以在 OpenShift 上启用 HTTP/2 吗?

如何在 openshift 中使用 keycloak 和 spring 读取所有用户?

如何使用openshift开发

OpenShift和F5的集成手册

heroku vs openshift 哪个PaaS更好?