Apache URL 重写有点复杂

Apache URL Rewriting little bit complex

我想根据具体型号重写一个url。 来自:

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=& [R,L]

但是,这是我遇到的错误(我单独尝试了每一个):

但如果我尝试使用它,它会起作用:

RewriteRule ^/?([0-9TZ-]*) /aa/bb/index/index?var1= [R,L]

http://myhost/aa/bb/2015-09-15T1000Z

非常感谢任何帮助。

昆汀

您无法匹配重写规则中的查询字符串,但由于您根本没有更改查询字符串,您可以简单地使用第二次尝试并包含一个 QSA 标志,以便现有查询字符串被追加:

RewriteRule ^/?([0-9TZ:-]*) /aa/bb/index/index?var1= [R,L,QSA]

您还可以在方括号中包含一个 : 来分隔冒号。在通过重写规则发送 URI 之前,任何 URL 编码都会被解码。