不将完整查询字符串传递给htaccess中的重定向URL

时间:2011-09-09 18:53:50

标签: .htaccess mod-rewrite url-rewriting

我正在创建一个htaccess文件,我目前有一个长网址,如下所示:

domain.com/file.aspx?id=1000&AE=value1&PL=value2

我想将其重定向为:

seconddomain.com/directory/subdirectory/1000

(即只使用传递的ID密钥的值)。

这就是我正在使用的:

RewriteEngine on 
RewriteCond %{QUERY_STRING} ^id=([0-9]+).*$
RewriteRule ^file.aspx$ http://seconddomain.com/directory/subdirectory/%1 [R=301,L]

然而,我最终得到的是:

http://seconddomain.com/directory/subdirectory/1000?id=1000&AE=value1&PL=value2

即。 ID的值放在正确的位置 - 但是,附加完整的查询字符串。我没有QSA旗帜。

我做错了什么?

提前谢谢。

1 个答案:

答案 0 :(得分:2)

我认为如果您没有自己设置查询字符串,则会自动附加查询字符串,尝试在重定向路径末尾粘贴?以覆盖它并查看是否有帮助

修改

只是为了澄清你的代码看起来像这样:

RewriteEngine on 
RewriteCond %{QUERY_STRING} ^id=([0-9]+).*$
RewriteRule ^file.aspx$ http://seconddomain.com/directory/subdirectory/%1? [R=301,L]