我的一个网站被黑了,之后出现了成千上万的网址。
我想编辑我的htaccess,这样所有的url都有/?X =被重定向到没有查询字符串的页面。
该网站是一个新闻网站,所以不能用查询字符串重定向所有url,否则网站将停止正常工作。
基本上我需要:
www.example.com/?x=spamurl
重定向到
www.example.com
和任何包含?x=
的深页www.example.com/category/?x=spamurl
重定向到
www.example.com/category/
这是我当前的html
# 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文件的问题?
多谢斯科特
你需要将你的重定向规则移动到之前的你的wordpress规则。您还需要匹配任何传入的URI:
RewriteCond %{QUERY_STRING} ^(.*)(^|&)x=[^&]+(.*)$
RewriteRule ^(.*)$ /$1?%1%3 [R=301,L]
# BEGIN WordPress
etc...
这将只删除 x=something参数,如果您在之前或之后有其他参数,则保留它们。