Apache mod_rewrite | RewriteCond不起作用

时间:2013-08-26 11:16:32

标签: apache .htaccess mod-rewrite

我拥有一个WordPress网站,我在/wp-login.php上有DDoS攻击。我想做的是用mod_rewrite来限制对这个文件的访问,但没有运气。

更具体地说,我要做的是允许访问此文件,仅允许用户在查询字符串中使用keywork google。如果关键字不存在,那么我想将用户重定向到Google网站。

示例:

我正在使用的htaccess如下,但它似乎不起作用:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteCond %{REQUEST_FILE} \/wp\-login\.php
    RewriteCond %{QUERY_STRING} !google
    RewriteRule (.*) http://www.google.com/ [R=301,L]
</IfModule>

如何重写此规则,以便让上述功能正常工作?

注意:我已经尝试了上述规则而没有第一个RewriteCond来检查所请求的文件名,并且重定向到google是正常预先形成的,但我喜欢做的是限制重定向仅适用于wp-login.php

亲切的问候

1 个答案:

答案 0 :(得分:2)

用以下代码替换您的代码:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteCond %{QUERY_STRING} !^google [NC]
    RewriteRule ^wp-login\.php$ http://www.google.com/ [R=301,L,NC]
</IfModule>

确保在其他浏览器中进行测试或清除浏览器缓存。