Php 如何在htaccess中指定从何处获取IP

Php 如何在htaccess中指定从何处获取IP,php,apache,.htaccess,ip,Php,Apache,.htaccess,Ip,好的,我们使用一些简单的IP身份验证和htaccess对我们网站上的文件夹进行验证: order deny,allow deny from all allow from 1.1.1.1 但在我们使用的新CDN中,实际用户IP地址通过不同的服务器变量传递,比如: $_SERVER['absolutely_true_ip']; 鉴于 $_SERVER['remote_addr']; 用户不是真正的IP吗 是否有必要告诉htaccess在哪里查找我们要验证的IP?是的,这是可能的 大多数服务器(

好的,我们使用一些简单的IP身份验证和htaccess对我们网站上的文件夹进行验证:

order deny,allow
deny from all
allow from 1.1.1.1
但在我们使用的新CDN中,实际用户IP地址通过不同的服务器变量传递,比如:

$_SERVER['absolutely_true_ip'];
鉴于

$_SERVER['remote_addr'];
用户不是真正的IP吗

是否有必要告诉htaccess在哪里查找我们要验证的IP?

是的,这是可能的

大多数服务器(CDN、代理)都使用X-FORWARDED-FOR发送原始ip(用户ip)。因此,这应该与工作相关:

SetEnvIf X-FORWARDED-FOR 1.1.1.1 allow
order deny,allow
deny from all
allow from env=allow
如果您的CDN有不同的变量名,只需编辑第一行即可


编辑:

如果要允许多个ip,只需复制第一行:

SetEnvIf X-FORWARDED-FOR 1.1.1.1 allow
SetEnvIf X-FORWARDED-FOR 2.2.2.2 allow
SetEnvIf X-FORWARDED-FOR 3.3.3.3 allow
order deny,allow
deny from all
allow from env=allow

您能否修改您的答案以适应几个不同的IP?谢谢