我有如下 URL:
index.php?q=123&w=456&e=789
我需要以类似的方式重写它们:
index/123/456/789
无需使用“if”。
到目前为止我已经尝试过:
location / {
rewrite ^/index.php\?q=(.*)&w=(.*)&e=(.*)$ /index/$1/$2/$3;
}
但它不起作用。有什么想法吗?
答案1
简而言之,你不能不使用if
。
长答案是正则表达式rewrite
语法仅匹配 URI。
尝试这样的操作:
location /index.php {
if ($args ~ "^q=(.*)&w=(.*)&e=(.*)") {
set $arg_q $1;
set $arg_w $2;
set $arg_e $3;
rewrite_log on;
rewrite ^ /index/$arg_q/$arg_w/$arg_e last;
}
}