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

时间:2013-04-27 09:20:05

标签: wordpress .htaccess redirect spam

我的一个网站被黑了,之后就出现了数千个网址。

我想编辑我的htaccess,以便将所有包含/?x =的网址重定向到没有查询字符串的网页。

该网站是一个单词新闻网站,因此无法使用查询字符串重定向所有网址,或网站停止正常工作。

基本上我需要:

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

正如你所看到的,我已经设法获得任何网址?x =在主网址之后重定向到主页面但我无法弄清楚如何做到这一点?x =在类别页面等后显示..

是否有编码可以将包含?x =的所有网址重定向到404页面而不会导致wordpress文件出现问题?

非常感谢

斯科特

1 个答案:

答案 0 :(得分:0)

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

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

# BEGIN WordPress
etc...

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