Apache - httpd.conf 使用 X-Forward-For 重定向 - 不工作?

wax*_*cal 4 mod-rewrite httpd redirect 301-redirect apache-2.2

我在重定向流量时遇到了一个问题。基本上,我正在构建一个新的 Web 服务器并且它位于我域的另一个版本上,所以我想重定向流量而不是来自这个 IP。

问题是 Amazon 的 ELB 负载均衡器妨碍了,因此它替换了 REMOTE ip 地址。正常获取方式。研究发现我需要使用 %{X-Forward-For}i - 但它不起作用,我不知道我的位置和语法是否正确。我正在运行虚拟主机,所以我放入了 VirtualHost 标签......

<VirtualHost *:80>
    ServerAdmin webmaster@foo.com
    DocumentRoot /var/www/vhosts/foo/www.bar.com/htdocs/
    ServerName www.bar.com
    ErrorLog /var/www/vhosts/foo/www.bar.com/logs/error.log
    CustomLog /var/www/vhosts/foo/www.bar.com/logs/access.log common
    RewriteEngine On
    RewriteCond %{X-Forwarded-For}i !^xxx\.xxx\.xxx\.xxx
    RewriteRule ^.*$ http://www.bar.com/ [R,L]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

Obv xxx.xxx.xxx.xxx 是我的 IP。

这是错误的吗?

Jan*_*nen 7

在我的头顶上:不应该这样吗

RewriteCond %{X-Forwarded-For} !^xxx\.xxx\.xxx\.xxx
Run Code Online (Sandbox Code Playgroud)

RewriteCond %{HTTP:X-Forwarded-For} !^xxx\.xxx\.xxx\.xxx
Run Code Online (Sandbox Code Playgroud)

要不就

RewriteCond %{HTTP_FORWARDED} !^xxx\.xxx\.xxx\.xxx
Run Code Online (Sandbox Code Playgroud)