使用.htaccess文件阻止用户使用ip和cookie

时间:2012-10-17 17:21:26

标签: .htaccess web

任何人都可以帮我创建阻止用户基于ip,cookie值和访问过的URL作为.htaccess文件输入的阻止规则。

几点:

  1. 只能从网站上的某些目录中阻止用户 整个网站
  2. 应将被阻止的用户重定向到指定的网址。
  3. BlockRule不需要设置cookie,因为用户浏览器中已存在cookie,块规则只需要读取现有的cookie值,将其与块规则中的一个匹配,然后进行重定向。
  4. 编辑: jon回答了我的上述问题, 但我也想将.htaccess文件中的这些IP(%{REMOTE_ADDR})/ cookie值(%{HTTP_COOKIE})记录到服务器上的某个文件中。

1 个答案:

答案 0 :(得分:1)

您可以将所有这些条件合并为一个规则:

RewriteEngine On

# by IP
RewriteCond %{REMOTE_ADDR} ^123.45.67.89$ [OR]
RewriteCond %{REMOTE_ADDR} ^123.45.67.88$

如果IP是123.45.67.89或123.45.67.88,那就做点什么。

# By cookie
RewriteCond %{HTTP_COOKIE} foo=bar; [OR]
RewriteCond %{HTTP_COOKIE} !something

如果以太有一个名为 foo 的cookie,其值为 bar ,或者如果没有名为的cookie,那就做点什么

# by request
RewriteRule ^/?(bad_url|should/not/have/access|my_images) /blocked.html [L,R]

因此,如果满足上述所有条件,并且请求/bad_url/should/not/have/access/my_images,则浏览器会重定向到/blocked.html