www和非www之间的OpenShift重定向循环

时间:2015-01-11 10:53:09

标签: redirect openshift

当我尝试访问我的网站时,我遇到了无限重定向循环。重定向循环似乎介于非www版本和www版本之间。

我的DNS的网址重定向设置为http://domain.tld到www.domain.tld。然后www.domain.tld有app-namespace.rhcloud.com的CNAME记录。

对于应用程序,我添加了别名www.domain.tld

我还尝试为domain.tld添加别名,但这没有帮助。

有什么我想念的吗?非常感谢你的帮助!

2 个答案:

答案 0 :(得分:2)

我在openshift上举办了一个laravel 5项目。 www和非www很棘手,但我终于使用简单的2部分解决方案......

  1. 因为你不能使用非www作为cname,所以将它作为A-record到174.129.25.170并且他们将添加www。这就是他们似乎所做的一切。很奇怪,我知道。

  2. 在.htaccess中使用它在云情况下似乎效果更好。

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    RewriteCond %{HTTP:X-Forwarded-Proto} =http
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    

答案 1 :(得分:1)

我发现了这个问题。这是由于从.domain.tld到domain.tld的重定向,是由.htaccess文件中的重写规则引起的:

<IfModule mod_rewrite.c> #RewriteCond %{HTTPS} !=on RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L] </IfModule>

删除此功能解决了这个问题。