嗨,我应该只允许特定的 IP 地址(即 HTTP: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 做到这一点
最佳答案
^xxx.xxx.x.xx$
的 RewriteCond
部分只是一个正则表达式。您可以轻松地使用组添加更多 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 和适当的身份验证系统。
关于php - 基于 HTTP :X-FORWARDED-FOR 允许在 htaccess 中访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13931765/