0

有人通过向我网站上的随机页面添加问号和随机字符来创建错误链接,格式如下:

  • www.mydomain.com/?57237933 仅限数字)
  • www.mydomain.com/folder1/?709d0c24941 带字母)
  • www.mydomain.com/folder1/page-name/ ?20?9h572(双问号)

我找到了 robots.txt 的阻止规则,但需要更强大的 htaccess 解决方案。我正在寻找一个 htaccess 重写规则,?它可以从任何 URL 中删除它及其后面的所有内容,从而将访问者重定向到原始 URL。

例如,我找到了要删除的解决方案,?id=123但是当id=不存在时,我还没有找到解决方案。

4

2 回答 2

0

我现在无法对其进行测试,但我认为这将是您问题的解决方案。

RewriteRule   ^([^?]+)\?.*$ $1 [L]

请验证它并告诉我它是否正常。

于 2012-05-06T21:11:23.083 回答
0

以下两条规则检查查询字符串的存在并重定向到页面的无查询字符串版本:

RewriteCond %{QUERY_STRING} !=""
RewriteRule ^(.*) /$1? [R,L]

由于您担心搜索引擎会抓取错误版本的页面,因此请考虑R=301在测试后更改为。此外,您可能需要考虑返回 404 错误以阻止使用查询字符串并告诉搜索引擎没有 http://mydomain.com/page/?1234.

于 2012-05-06T21:13:30.447 回答