如何使用mod_rewrite阻止某些HTTP请求?

时间:2019-05-21 09:49:58

标签: linux apache mod-rewrite

创建的RewriteCond正则表达式虽然经过了测试,但未捕获到日志摘录。因此,该请求不会像预期的那样被阻止。

我想阻止对以下URL的请求

RewriteCond语句regex已使用regex101.com针对日志摘录进行了测试,但在服务器上应用时似乎未捕获摘录。

首先,我尝试了整个请求URL,但即使是下面的(短得多的)RewriteCond,也没有捕获到该请求。我也尝试过

应被阻止的请求:

www.foobar.com/?eID=FOO&type=bar&search%5Bthis%5D%5Bthat%5D%5Btest%5D%5Blatitude%5D=11.1111111111111

1重写规则-不要捕获上述URL:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_URI} ^(\/)[?](eID=FOO)$ [NC]
  RewriteRule ^.*$ - [F,L]
</IfModule>

2与此相同:

RewriteCond %{REQUEST_URI} ^(\/\?)(eID=FOO)$ [NC]

我希望该请求被阻止。但以上方法均无效。

任何帮助将不胜感激。谢谢。

最诚挚的问候,

马克

1 个答案:

答案 0 :(得分:0)

安装了REQUEST_URI,请尝试以下提及的QUERY_STRING,并确保rewrite_module已加载或启用

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{QUERY_STRING} ^.*(eID=FOO).* [NC]
    RewriteRule ^(.*)$ - [F,L] 
</IfModule>

LoadModule rewrite_module /opt/jboss/httpd/lib/httpd/modules/mod_rewrite.so