拒绝访问包含特定字词的任何网址

时间:2013-12-15 19:13:44

标签: .htaccess mod-rewrite

有些事情不断打击我的网站,将PLACEIMPMACROHERE添加到URL的末尾。我不确定它是什么,但它看起来并不好。所以,如果可能的话,我想挫败它。

'将IMP宏置于此处'好像它是一些bot / flooding脚本而且还没有配置好。

如何阻止以PLACEIMPMACROHERE结尾的任何网址,它看起来好像是一个文件夹。它命中如下:

www.website.com/directory/another-directory/PLACEIMPMACROHERE

或者在任何地方,有时并非总是在同一地点:

www.website.com/directory/PLACEIMPMACROHERE

我尝试过但没有成功

RewriteCond %{THE_REQUEST} PLACEIMPMACROHERE  [NC]  
RewriteRule .*  - [F]

有没有人知道哪里出错或完全错了?

2 个答案:

答案 0 :(得分:3)

您拥有的规则应该有效,它只是在请求中检查任何位置中的短语,而不仅仅是在最后。你可以通过添加另一个字符作为支票来做到这一点,同时确保规则在你拥有的任何其他字符之前,并且在文档根目录中的htaccess文件中:

RewriteCond %{THE_REQUEST} PLACEIMPMACROHERE($|\ |\?)  [NC]  
RewriteRule .*  - [F]

哦,还要确保你打开了重写引擎:

RewriteEngine

靠近htaccess文件顶部的某个地方。

答案 1 :(得分:3)

我同意Jon Lin,你的mod_rewriting应该可以工作,虽然可以简化:

RewriteRule PLACEIMPMACROHERE - [F]

那就是说,我建议你使用FilesMatch指令:

<FilesMatch "PLACEIMPMACROHERE$">
    order allow,deny
    deny from all
</FilesMatch>

我认为资源消耗较少,而且复杂程度也较低。