我想根据特定型号重写网址。 从:
http://myhost/aa/bb/value1?var2=value2&var3=value3
要:
http://myhost/aa/bb/index/index?var1=value1&var2=value2&var3=value3
这是我认为很好的解决方案:
RewriteRule ^/?([\:0-9TZ-]*)\?(.*)$ /aa/bb/index/index?var1=$1&$2 [R,L]
但是,这是我得到的错误(我单独尝试了每一个):
但是如果我尝试使用它会有效:
RewriteRule ^/?([0-9TZ-]*) /aa/bb/index/index?var1=$1 [R,L]
和
http://myhost/aa/bb/2015-09-15T1000Z
任何帮助都会非常感激。
昆汀
答案 0 :(得分:2)
您无法在重写规则中与查询字符串进行匹配,但由于您根本没有更改查询字符串,因此您只需使用第二次尝试并包含QSA
标记即可查询字符串被追加:
RewriteRule ^/?([0-9TZ:-]*) /aa/bb/index/index?var1=$1 [R,L,QSA]
您还可以在方括号中包含:
来捕获冒号。在通过重写规则发送URI之前,任何URL编码都会被解码。