嗨,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]