使用 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 时转发电子邮件 [关闭]