【问题标题】:SSL redirection based on folder and domain基于文件夹和域的 SSL 重定向
【发布时间】:2013-05-16 13:58:36
【问题描述】:

这似乎是一件很容易的事情,但我却遇到了这样的麻烦。我有一个开发服务器和一个实时服务器,一旦测试更改等,我会通过 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 上。

谢谢

【问题讨论】:

    标签: apache .htaccess ssl https


    【解决方案1】:

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

    存在各种问题,主要是我没有意识到 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]
    

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

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2018-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-17
      • 1970-01-01
      • 2011-10-14
      相关资源
      最近更新 更多