301 重定向 GET 参数

301 Redirect GET parameter

我正在尝试像这样重定向 url:

http://originalwebsite.com/event/detail.html?id=13

http://newwebsite.com/events

我在 .htaccess 文件中尝试了以下内容:

redirect 301 /event/detail.html?id=13 /events

但它不起作用...

我也试过这个:

RewriteCond %{QUERY_STRING} /event/detail.html?id=13
RewriteRule (.*) /events [R=301,L] 

任何人都可以告诉我我做错了什么吗?这是一个非常糟糕的标准重定向...

不需要传递GET参数,我只想将旧页指向新页。

非常感谢

经过进一步调查,我发现您无法在 Redirect 中传递变量,因此我将代码更改为以下内容:

RewriteCond %{QUERY_STRING} id=13$
RewriteRule (.*) /events? [L,R=301]   

这是可行的,但我遇到的问题是此重定向适用于任何附加了 id=13 的 URL。我需要更具体一些,因为我想将 /event/detail.html?id=13 重定向到 /events

(.*) 是一个包罗万象的模式,所以如果你的规则只适用于特定的 uri,你可以在 RewriteRule

RewriteCond %{QUERY_STRING} id=13$
RewriteRule ^event/detail\.html$ /events? [L,R=301]