根据 X-Forwarded-Host 编写 RewriteRule

根据 X-Forwarded-Host 编写 RewriteRule

我在负载均衡器后面有一个 Apache Web 服务器,它将请求代理到 Apache,并且在配置目录方面存在问题。

以下是我的场景:

  1. 上层负载均衡器将请求代理到 Apache,并在其中添加原始主机名X-Forwarded-Host
  2. 我应该根据X-Forwarded-Host标题值来决定提供哪个目录。
  3. 传入请求具有X-Forwarded-Host如下标头:
    test1.example.com
    test2.example.com
    test3.example.com
  4. 这是我期望的行为:
    每个请求必须来自:
    %{DocumentRoot}/test1/
    %{DocumentRoot}/test2/
    %{DocumentRoot}/test3/
  5. 我写了类似的东西,但需要纠正:
RewriteCond "%{HTTP:X-Forwarded-Host}" "^[^.]*"
RewriteRule "^(.*)" "%{DOCUMENT_ROOT}/%1/$1" [L]

关于如何编写重写规则有什么帮助吗?

答案1

您需要将您的RewriteCond模式放在括号中,如下所示:

RewriteCond "%{HTTP:X-Forwarded-Host}" "^([^.]*)"
RewriteRule "^(.*)" "%{DOCUMENT_ROOT}/%1/$1" [L]

相关内容