我的目标是/foobar?key=123请求应该redirect到/download/foobar.html?key=123 。
我目前使用下面的代码来完成这个:
location /foobar { rewrite ^/foobar(.*)$ /download/foobar.html$1 permanent; }
这样做的窍门,但我们有一些老代码也调用/FooBar?key=123和/Foobar?key=123忽略了重写规则。
我怎样才能让这些重写呢? 可以用:
location ~* ^/foobar { rewrite ^ /download/foobar.html$1 permanent; }
但这是不是有点松散的规则?
首先, location默认情况下是区分大小写的; location ~* ^/foobar$将解决这个问题。
对于rewrite ,它总是区分大小写,但是你可以使你的expression式匹配两种forms:
rewrite ^/[Ff]oo[Bb]ar(.*)$ /download/foobar.html$1 permanent;