.htaccess重定向到目录并保留$ _GET变量?

时间:2012-03-03 00:11:51

标签: .htaccess

我想从/orders/whatever/?n=4

重定向

为:

/orders/?shopURL=whatever&n=4

我设法重定向到正确的目录,但我丢失了传递的变量。

这是我目前的规则:

RewriteRule ^([\w\d]+)$ /orders/?shopURL=$1 [L]

3 个答案:

答案 0 :(得分:1)

如果要强制执行查询字符串,请使用:

RewriteCond %{QUERY_STRING}  (\bn=\d+\b)
RewriteRule ^orders/([\w\d]+)/?$ /orders/?shopURL=$1&%1 [L]

否则,您可以在没有RewriteCond的情况下使用以下内容:

RewriteRule ^orders/([\w\d]+)/?$ /orders/?shopURL=$1 [L,QSA]

答案 1 :(得分:1)

QSA的{​​{1}}标记将保留现有的查询字符串字段。

答案 2 :(得分:0)

你的RewriteRule似乎非常通用,好像它会重定向几乎每一页。

我对正则表达式并不是那么好,所以我会留给你或其他人。但是你需要在重写规则结束时捕获参数,然后将它附加到新URL的末尾。

RewriteRule ^([\w\d]+)/(somethinghere)$ /orders/?shopURL=$1&$2 [L]