301 使用 htaccess 重定向获取参数 URL

301 Redirect Get Parameter URL with htaccess

我需要 301 重定向旧的 url,它在 url 中包含一个 get 参数。

我需要 301 URL:

http://www.website.com/choose?cat=womens

到这个URL:

http://www.website.com/womens

我已经搜索并尝试过但没有成功:

RewriteCond %{QUERY_STRING} cat=womens
RewriteRule ^choose\.php$ /womens [L,R=301]

我哪里错了?

你几乎是正确的,只有 2 个问题:

  1. .php 根据问题
  2. choose 之后的原始 URI 中不存在
  3. 您需要在目标中添加?以去除原始查询字符串

您可以使用:

RewriteCond %{QUERY_STRING} (?:^|&)cat=([^&]+) [NC]
RewriteRule ^choose(?:\.php)?$ /%1? [L,R=301,NC]

试试这些:

RewriteCond %{QUERY_STRING} ^cat=womens$

重写规则^选择$http://www.website.com/womens? [R=301,L]