我在负载均衡器后面有一个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}是正确的。是否区分大小写?
—
Jeff Strunk
所有帽子为我工作。我猜它不区分大小写,否则是别名或其他名称。
—
杰克·威尔逊
您确实提供服务
—
7heo.tk
.jpe
或.jp
归档吗?