1

我似乎无法应用我找到的用于剥离查询字符串的任何示例。

我们在 www.example.com/blog/ 安装了 WordPress,出于某种原因,即使我们的类别设置为漂亮的 slug(即 www.example.com/categories/cat-name/ ),即使我可以从未在报告的引荐来源网页上找到任何链接,Google 网站管理员工具不断尝试索引 www.example.com/blog/?cat=3、?cat=25、?cat=37 等。事实上,对现在它显示了超过 50 个此类 URL,直到类别 #81,但我们只有 11 个类别。

正确的类别 URL 已编入索引,我只想删除所有这些查询字符串,然后重定向到 www.example.com/blog/,但这些示例似乎都不起作用……这是我最近的尝试(在网络空间根...在 /blog/.htaccess 中的尝试也没有结果):

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example\.com [OR]
RewriteCond %{REQUEST_URI} /index\.html$
RewriteRule (.*?)(index\.html)?$ http://www.example.com/$1 [NE,R=301,L]

RewriteCond %{REQUEST_URI} \.jpg.+$
RewriteRule ^(.*\.jpg).*$ http://www.example.com/$1 [NE,R=301,L]

RewriteCond %{QUERY_STRING} ^cat=([0-9]*)$
RewriteRule ^(.*)$ http://www.example.com/blog/ [R=301,L]

提前致谢。请注意,第一组规则强制执行“www.”,没有“index.html”,第二组删除“.jpg”之后的所有内容,因为我们遇到了一个奇怪的问题,Google 试图索引以奇怪方式结尾的 url,像“.jpg%20>”,好像它以某种方式错过了锚源的结束引号,但我从来没有在网站中找到这样的错误......引荐来源总是一个 300 错误页面。

4

1 回答 1

1

如果要完全删除查询字符串,请以?.

来自Apache 重写文档

默认情况下,查询字符串会原封不动地传递。但是,您可以在包含查询字符串部分的替换字符串中创建 URL。只需在替换字符串中使用问号来指示应将以下文本重新注入到查询字符串中。当您想删除现有的查询字符串时,只用问号结束替换字符串。要组合新旧查询字符串,请使用 [QSA] 标志。

于 2013-01-22T17:32:11.673 回答