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
- 值 1: [:0-9TZ-]
- 值 2:[0-9]
- 值 3:[0-9]
这是我认为不错的解决方案:
RewriteRule ^/?([\:0-9TZ-]*)\?(.*)$ /aa/bb/index/index?var1=& [R,L]
但是,这是我遇到的错误(我单独尝试了每一个):
- : : 给我一个 404 错误(aa/bb/2015-09-15T10:00Z 未找到)
- \?(.*)$ 和 &$2:给我一个 404 错误(找不到 aa/bb/2015-09-15T1000Z ,而我正在寻找 http://myhost/aa/bb/2015-09-15T1000Z?count=2)
但如果我尝试使用它,它会起作用:
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 编码都会被解码。
我想根据具体型号重写一个url。 来自:
http://myhost/aa/bb/value1?var2=value2&var3=value3
收件人:
http://myhost/aa/bb/index/index?var1=value1&var2=value2&var3=value3
- 值 1: [:0-9TZ-]
- 值 2:[0-9]
- 值 3:[0-9]
这是我认为不错的解决方案:
RewriteRule ^/?([\:0-9TZ-]*)\?(.*)$ /aa/bb/index/index?var1=& [R,L]
但是,这是我遇到的错误(我单独尝试了每一个):
- : : 给我一个 404 错误(aa/bb/2015-09-15T10:00Z 未找到)
- \?(.*)$ 和 &$2:给我一个 404 错误(找不到 aa/bb/2015-09-15T1000Z ,而我正在寻找 http://myhost/aa/bb/2015-09-15T1000Z?count=2)
但如果我尝试使用它,它会起作用:
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 编码都会被解码。