禁止从空白或“ - ”引用来访问某个页面.htaccess

时间:2013-03-23 16:23:13

标签: apache .htaccess mod-rewrite

我最近再次遇到DDOS攻击的麻烦。 基本上我想禁止访问某条路径。

日志文件示例:

  

109.242.25.254 - - [23 / Mar / 2013:16:09:35 +0100]" GET /?op = my_account HTTP / 1.1" 200 4218" - " " Mozilla / 5.0(X11; U; Linux i686; en-US;   rv:1.9.0.10)Gecko / 2009042523 Ubuntu / 9.04(jaunty)Firefox / 3.0.10

所以我想禁止空白推荐人或" - "引用路径"?op = my_account"然后将它们发送到403页。

我用htaccess开始这样:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?mysite.com [NC]
RewriteRule ^\?op=my_account$ - [F] 

所以基本上我禁止除了我的页面以外的所有其他引用者。 但不知何故,这不会奏效。 我想我在第二行中遗漏了一些东西?

1 个答案:

答案 0 :(得分:0)

您无法在RewriteRule中使用\?op=my_account,因为查询字符串在那里不可用,只有URL路径。您必须使用RewriteCond代替%{QUERY_STRING}

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mysite\.com [NC]
RewriteCond %{QUERY_STRING} ^op=my_account$
RewriteRule ^$ - [F]