是否可以在nginx中将mysite.com?t=TVALUE&foo=bar&bar=bazz
之类的网址重写为mysite.com/TVALUE?foo=bar&bar=bazz
?
我的所有尝试都导致无限重定向或根本没有重定向..
答案 0 :(得分:1)
使用$args
或$request_uri
变量上的正则表达式,可以提取单个查询参数。
例如:
location = / {
if ($args ~ "^(.*&)?t=([^&]+)(?:&(.*))?$") {
return 302 /$2?$1$3;
}
}
在上面的例子中,正则表达式包括:
^ beginning of string
(.*&)? optionally capture prefix up to an ampersand
t=([^&]+) match and capture the required parameter
(?:&(.*))? optionally capture suffix discarding ampersand
$ end of string
关于正则表达式if
和this caution的使用,请参阅this useful resource。