我的一个网站被黑了,之后就出现了数千个网址。
我想编辑我的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文件出现问题?
非常感谢
斯科特
答案 0 :(得分:0)
您需要将重定向规则移至之前您的wordpress规则。您还需要匹配任何传入的URI:
RewriteCond %{QUERY_STRING} ^(.*)(^|&)x=[^&]+(.*)$
RewriteRule ^(.*)$ /$1?%1%3 [R=301,L]
# BEGIN WordPress
etc...
这将删除仅 x = something参数,如果您之前或之后有其他参数,则会保留这些参数。