您好,我应该只允许特定的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.yy。如何使用htaccess执行此操作?
发布于 2012-12-18 20:02:20
RewriteCond的^xxx.xxx.x.xx$部分只是一个正则表达式。您可以轻松地使用组添加更多IP地址:
^(xxx\.xxx\.x\.xx|yyy\.yy\.y\.yy)$您会注意到,我已经用反斜杠转义了所有的.-这是因为.在正则表达式中具有特殊含义,如果您希望它只与文字.字符匹配,则需要对其进行转义。
因此,您的新RewriteCond将如下所示:
RewriteCond %{HTTP:X-FORWARDED-FOR} !^(xxx\.xxx\.x\.xx|yyy\.yy\.y\.yy)$您可以轻松添加更多IP地址,只需使用|字符分隔它们即可。
但是,请注意,这种方法不会给您带来任何真正的安全性。很容易伪造一个请求来通过这一点。如果您需要安全性,则应该使用SSL和适当的身份验证系统。
发布于 2020-07-25 01:07:19
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]https://stackoverflow.com/questions/13931765
复制相似问题