2012-12-18 87 views
2

您好我应该只允许特定的IP地址(这是HTTP:X-FORWARDED-FOR地址)访问文件。我已经做了以下允许基于HTTP访问htaccess:X-FORWARDED-FOR

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

回答

6

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

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

你会发现我已经逃脱所有的. s的反斜杠 - 这是因为.在正则表达式的特殊含义,以及它需要如果您希望它仅匹配字面.字符,则会转义。

因此新RewriteCond看起来就像这样:

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

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

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

+0

是的,它工作正常谢谢你DaveRandom – Kalai

相关问题