0

这似乎是一件很容易的事情,但我却遇到了这样的麻烦。我有一个开发服务器和一个实时服务器,一旦测试更改等,我就会通过 git 从开发服务器推送到实时服务器......

我在我的 htaccess 文件中使用以下内容:

RewriteCond %{HTTPS} !=on
RewriteRule ^(members/.*)$ https://live-domain.com/members/$1 [R=301,L]

这对实时域很有效。但是现在当我去dev-domain.com/members时,它会重定向到https://live-domain.com

我需要的是,如果成员文件夹被调用并且它是 live-comain.com,它只去 https。所以我尝试了以下方法和变体:

RewriteCond %{HTTP_HOST} ^(.*\.)?live-domain\.com
RewriteCond %{HTTPS} !=on
RewriteRule ^(members/.*)$ https://live-domain.com/members/$1 [R=301,L]

但上述只是超时,在live-domain.com和 /members/members/members/members/members/ 等上出现无限循环错误消息...在 url

有人可以为我指出正确的方向,以便 https 重写仅发生在 live-domain.com 上。

谢谢

4

1 回答 1

0

如果其他人遇到这个问题,我的解决方案如下。

存在各种问题,主要是我没有意识到 Amazon AWS(我的实时站点所在的位置)没有将 http 或 https 信息从负载均衡器(SSL 证书所在的位置)传递到 EC2 实例(我的脚本所在的位置) )。

您需要使用 HTTP:X-Forwarded-Proto 来检测它。下面的完整工作htaccess:

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP_HOST} ^(.*\.)?live-domain\.com
RewriteCond %{REQUEST_URI} members 
RewriteRule ^(.*)$ https://live-domain.com/members/$1 [R,L]

以上是在 members 目录中的 htaccess 文件中。

希望能帮助到你。

于 2013-05-16T15:51:37.027 回答