Apache重写代理标志更改客户端IP地址
我使用htaccess文件将所有子目录重定向到index.php文件,并将目录名作为变量传递。我使用代理[P]标志来防止URL在访问者的浏览器中重定向/更改Apache重写代理标志更改客户端IP地址,apache,.htaccess,Apache,.htaccess,我使用htaccess文件将所有子目录重定向到index.php文件,并将目录名作为变量传递。我使用代理[P]标志来防止URL在访问者的浏览器中重定向/更改 RewriteCond %{REQUEST_URI} !-d RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule ^(.+[^/])(.*)$ https://domain.com/index.php?user=$1 [P,L,NC] 但是,索引页使用$_SERVER[“REMOTE_ADDR
RewriteCond %{REQUEST_URI} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.+[^/])(.*)$ https://domain.com/index.php?user=$1 [P,L,NC]
但是,索引页使用$_SERVER[“REMOTE_ADDR”]跟踪访问者的IP地址。当我测试根域时,这很好,但是子目录都显示为相同的内部IP地址(即由于代理)
我怎么能两全其美呢?i、 e.在浏览器中保持URL静态,但在这两种情况下都能获得真正的客户端IP?Apache会设置一些额外的头来帮助您处理此问题。您需要修改后端以检查除客户端IP之外(或代替)的标头。根据检查的原因,如果请求来自代理的IP,则最好只检查该标头,因为标头可能会被欺骗 詹姆斯-谢谢。。。这使我朝着正确的方向前进。对于需要它的用户,更新配置后,获取代理转发IP的PHP调用是$\u SERVER[“HTTP\u X\u forwarded\u For”]。如果您希望浏览器中的地址保持不变,只需不执行外部重定向-将其设为内部重定向,并放弃代理转发。