我正在创建一个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旗帜。
我做错了什么?
提前谢谢。
答案 0 :(得分:2)
我认为如果您没有自己设置查询字符串,则会自动附加查询字符串,尝试在重定向路径末尾粘贴?
以覆盖它并查看是否有帮助
修改强>
只是为了澄清你的代码看起来像这样:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^id=([0-9]+).*$
RewriteRule ^file.aspx$ http://seconddomain.com/directory/subdirectory/%1? [R=301,L]