linux – .htaccess RewriteCond for REMOTE_ADDR,落后于Load Balancer?

我在负载均衡器后面有一个Web服务器.

我需要在我的.htaccess中添加一个条件重定向,以便在我们将网站脱机进行维护时显示维护页面.这部分很简单:

RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.php$[NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteRule .* /maintenance.php [R=302,L]

但是我想添加一个条件,如果访问者的IP地址是我自己的,它不会将我重定向到维护页面,我将能够看到并测试该网站,就像它在线一样.这部分通常也很简单:

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^11\.111\.111\.111
RewriteCond %{REQUEST_URI} !/maintenance.php$[NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteRule .* /maintenance.php [R=302,L]

但是,由于我的Web服务器位于负载均衡器后面,因此REMOTE_ADDR将解析为负载均衡服务器的内部IP地址.

如何更改此选项以查找转发的IP地址?我知道在PHP中你可以使用$_SERVER [‘HTTP_X_FORWARDED_FOR’]来获取转发的IP地址.我在.htaccess中尝试过一些东西,但没有运气:

%{X_FORWARDED_FOR}
%{HTTP:X_FORWARDED_FOR}
%{HTTP_X_FORWARDED_FOR}

我得到以下工作:

%{HTTP:X-FORWARDED-FOR}

解决方法

使用%{HTTP:X-FORWARDED-FOR}代替%{REMOTE_ADDR}

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...