提问者:小点点

重定向攻击后创建的垃圾邮件查询字符串URL


我的一个网站被黑了,然后成千上万的网址出现了。

我想编辑我的htaccess,以便所有有/?x=的URL都被重定向到没有查询字符串的页面。

该站点是word press站点,因此无法用查询字符串重定向所有URL或站点停止正常工作。

基本上我需要:

www.example.com/?x=spamurl

重定向到

www.example.com

和包含?x=的任何深度页

www.example.com/category/?x=spamurl

重定向到

www.example.com/category/

这是我当前的htaccess

   # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    RewriteCond %{QUERY_STRING} x=
    RewriteRule ^$ http://www.example.com/? [R=301,L]
    </IfModule>

    # END WordPress

正如您所看到的,我已经设法将主url后面带有?x=的url重定向到主页面,但是当?x=显示在类别页面后面时,我不知道如何做到这一点。

有没有编码可以重定向包括?x=的所有URL到一个404页,而不会引起wordpress文件的问题?

多谢

斯科特


共1个答案

匿名用户

您需要将重定向规则移到wordpress规则之前。您还需要匹配任何传入的URI:

RewriteCond %{QUERY_STRING} ^(.*)(^|&)x=[^&]+(.*)$
RewriteRule ^(.*)$ /$1?%1%3 [R=301,L]

# BEGIN WordPress
etc...

这将只删除x=something参数,如果您在之前或之后有其他参数,则保留这些参数。