2

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

我想编辑我的 htaccess,以便将所有具有 /?x= 的 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 文件出现问题?

非常感谢

斯科特

4

1 回答 1

0

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

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

# BEGIN WordPress
etc...

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

于 2013-04-27T20:20:45.347 回答