301重定向GET参数

时间:2016-06-09 09:11:58

标签: .htaccess http-status-code-301 http-redirect

我正在尝试重定向这样的网址:

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

http://newwebsite.com/events

我在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

这是有效的,但我遇到的问题是此重定向适用于附加了a.sh的任何网址。我需要更具体,因为我想将/event/detail.html?id=13重定向到/ events

1 个答案:

答案 0 :(得分:1)

(。*)是一种包罗万象的模式,因此,如果您只应用于特定的uri规则,则可以在RewriteRule中匹配该uri

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