【问题标题】:Redirect to 404 if query string contains anything如果查询字符串包含任何内容,则重定向到 404
【发布时间】:2016-12-28 05:08:36
【问题描述】:
尽管进行了广泛的搜索,但我似乎找不到答案,所以如果之前有人问过这个问题,我很抱歉,我只是错过了。
我有一个只有静态 URI 的网站,所有 SEO 友好,硬编码在 .htaccess 文件中。不幸的是,我们看到很多其他网站通过查询字符串链接到我们,搜索令人讨厌的东西。这损害了我们的搜索排名,我们希望为任何带有查询字符串的内容返回 404。
我尝试了以下变体,但没有成功:
RewriteCond %{QUERY_STRING} .
RewriteRule ^404.php/? [R,L]
任何帮助将不胜感激。
【问题讨论】:
标签:
.htaccess
mod-rewrite
redirect
query-string
【解决方案1】:
RewriteEngine on
RewriteCond %{QUERY_STRING} .
RewriteRule (.*) /404.php? [R,L]
这应该可以实现您想要做的事情。
【解决方案2】:
上面的答案是
RewriteEngine on
RewriteCond %{QUERY_STRING} .
RewriteRule (.*) /404.php? [R,L]
不会向搜索引擎返回 404。它只是显示 404 页面。使用下面的行来完成目标
RewriteEngine on
RewriteCond %{QUERY_STRING} .
RewriteRule (.*) /404.php? [L,R=404]
请记住,即使这会消除谷歌索引中的垃圾邮件链接,它也会限制 wp-admin 和搜索功能。