.htaccess 带其他规则的剥离特定查询字符串

.htaccess 带其他规则的剥离特定查询字符串,.htaccess,mod-rewrite,url-rewriting,.htaccess,Mod Rewrite,Url Rewriting,我似乎在应用我找到的任何用于剥离查询字符串的示例时遇到了问题 我们在www.example.com/blog/上安装了WordPress,出于某种原因,即使我们的分类设置为非常简单(即www.example.com/categories/cat-name/),即使我在所报告的推荐人页面上找不到任何链接,谷歌网站管理员工具仍在尝试索引www.example.com/blog/?cat=3,但未能成功,?cat=25、?cat=37等等。事实上,现在它显示了50多个这样的URL,直到类别81,但是我

我似乎在应用我找到的任何用于剥离查询字符串的示例时遇到了问题

我们在www.example.com/blog/上安装了WordPress,出于某种原因,即使我们的分类设置为非常简单(即www.example.com/categories/cat-name/),即使我在所报告的推荐人页面上找不到任何链接,谷歌网站管理员工具仍在尝试索引www.example.com/blog/?cat=3,但未能成功,?cat=25、?cat=37等等。事实上,现在它显示了50多个这样的URL,直到类别81,但是我们只有11个类别

正确的类别URL被编入索引,我只想去掉所有这些查询字符串,并重定向到www.example.com/blog/,但这些示例似乎都不起作用。。。以下是我的最新尝试(在webspaceroot中,/blog/.htaccess中的尝试也没有结果):


提前谢谢。请注意,第一组规则强制执行“www.”,而不是“index.html”,而第二组规则则删除“.jpg”之后的所有内容,因为我们遇到了一个奇怪的问题,谷歌试图索引以wierd方式结束的URL,比如“.jpg%20>”,好像它不知何故错过了锚源的结束语,但我在网站中从未发现这样的错误。。。referer始终是一个300错误页。

如果要完全删除查询字符串,请在替换字符串的末尾加上一个

从:

默认情况下,查询字符串在传递过程中保持不变。但是,您可以在包含查询字符串部分的替换字符串中创建URL。只需在替换字符串内使用问号,指示应将以下文本重新注入查询字符串。如果要删除现有查询字符串,请仅以问号结束替换字符串。要组合新查询字符串和旧查询字符串,请使用[QSA]标志


如果要完全删除查询字符串,请使用
结束替换字符串

从:

默认情况下,查询字符串在传递过程中保持不变。但是,您可以在包含查询字符串部分的替换字符串中创建URL。只需在替换字符串内使用问号,指示应将以下文本重新注入查询字符串。如果要删除现有查询字符串,请仅以问号结束替换字符串。要组合新查询字符串和旧查询字符串,请使用[QSA]标志


如果要完全删除查询字符串,请使用
结束替换字符串。apacherewrite docs:
默认情况下,查询字符串是以不变的方式传递的。但是,您可以在包含查询字符串部分的替换字符串中创建URL。只需在替换字符串内使用问号,指示应将以下文本重新注入查询字符串。如果要删除现有查询字符串,请仅以问号结束替换字符串。要组合新的和旧的查询字符串,请使用[QSA]标志。
谢谢,这样做了。。。虽然我不得不将该规则移到/blog/.htaccess文件,而不是/htaccess文件,但您的回复是评论,而不是答案吗?我看不出有任何方法可以将它标记为“正确的”,或“有效的”,等等。我很高兴它起到了作用。我把评论复制成了一个答案,这样你就可以结束它了。我还添加了一个指向我引用的源的链接。如果要完全删除查询字符串,请在替换字符串末尾添加一个
。apacherewrite docs:
默认情况下,查询字符串是以不变的方式传递的。但是,您可以在包含查询字符串部分的替换字符串中创建URL。只需在替换字符串内使用问号,指示应将以下文本重新注入查询字符串。如果要删除现有查询字符串,请仅以问号结束替换字符串。要组合新的和旧的查询字符串,请使用[QSA]标志。
谢谢,这样做了。。。虽然我不得不将该规则移到/blog/.htaccess文件,而不是/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]