使用.htaccess我想阻止3个ip地址查看以下任何页面:
http://url.com/foo
http://url.com/foo/bar
http://url.com/foo/bar/foo
所以foo和之后的任何事情。我怎样才能做到这一点?我似乎总能找到的是如何完全阻止IP地址,但没有阻止它查看网站的某些部分。当他们访问这些页面时,我想向他们显示404错误。
答案 0 :(得分:1)
你只想阻止目录/ foo /,所以在/ foo /中创建一个.htaccess文件(直观地说,它只适用于/ foo /)。然后,使用相同的语法像往常一样阻止IP地址:
order allow, deny
deny from 127.0.0.1
allow from all
我相信这会返回403 - 禁止。不确定如何返回404.(您可以使用与404错误相同的页面来处理403错误,并且用户不太可能检查响应状态代码)
修改:如果您从RewriteEngine On
开始,user4035的回答是否有效?
答案 1 :(得分:0)
试试这个:
RewriteCond %{REMOTE_ADDR} ^111.111.111.111$ [OR]
RewriteCond %{REMOTE_ADDR} ^222.222.222.222$ [OR]
RewriteCond %{REMOTE_ADDR} ^333.333.333.333$
RewriteCond %{REQUEST_URI} ^/foo$ [NC,OR]
RewriteCond %{REQUEST_URI} ^/foo/bar$ [NC,OR]
RewriteCond %{REQUEST_URI} ^/foo/bar/foo$ [NC]
RewriteRule .* - [R=404,L]
这实现了条件:
IF(A或B或C)和(D或E或F) - >显示404错误
为了以防万一,我使url匹配不区分大小写。