允许基于HTTP:X-Forwarded-For中的HTACCESS访问



嗨,i仅应允许特定的IP地址(http:x-forwarded-for Adresses)访问文件。我已经通过以下

做到了
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-FORWARDED-FOR} !^xxx.xxx.x.xx$
RewriteRule ^$ http://xxx.xxx.x.xx/access_denie.php [R=301,L]

现在,我必须允许它用于多个IP,例如yyy.yy.y.y.y.如何使用htaccess

来做到这一点

RewriteCond^xxx.xxx.x.xx$部分只是正则表达式。您可以轻松使用组添加更多IP地址:

^(xxx.xxx.x.xx|yyy.yy.y.yy)$

您会注意到我已经逃脱了所有. s的后斜线 - 这是因为.在正则表达式中具有特殊的含义,如果您希望它仅匹配字面的.字符,则需要逃脱它。p>所以您的新RewriteCond看起来像这样:

RewriteCond %{HTTP:X-FORWARDED-FOR} !^(xxx.xxx.x.xx|yyy.yy.y.yy)$

您可以轻松地添加更多IP地址,只需用|字符将它们分开。

但是,请注意,这种方法不会给您任何真正的安全性。很容易欺骗要求克服这一点的请求。如果您需要安全性,则应使用SSL和适当的身份验证系统。

RewriteCond %{HTTP:X-Forwarded-For}i 1.1.1.1 [OR]
RewriteCond %{HTTP:X-Forwarded-For}i 2.2.2.2 [OR]
RewriteCond %{HTTP:X-Forwarded-For}i 3.3.3.3
RewriteRule ^(.*) - [F]

RewriteCond %{HTTP:X-Forwarded-For} (1.1.1.1|2.2.2.2|3.3.3.3)
RewriteRule ^(.*) - [F]

最新更新