0

任何人都可以帮助我创建一个阻止规则,以根据 ip、cookie 值和访问的 URL 作为 .htaccess 文件的输入来阻止用户。

几点:

  1. 用户应该被阻止,只能从网站上的某些目录而不是整个网站
  2. 被阻止的用户应该被重定向到指定的 URL。
  3. BlockRule 不需要设置 cookie,因为用户浏览器中已经存在 cookie,block 规则只需读取现有的 cookie 值,将其与 block 规则中的一个匹配并进行重定向。

编辑:乔恩回答了我上面的查询,但我也想将这些 IP(%{REMOTE_ADDR})/cookie 值(%{HTTP_COOKIE})从 .htaccess 文件记录到服务器上的某个文件中。

4

1 回答 1

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,或者没有名为something的 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

于 2012-10-17T18:38:31.863 回答