У меня есть URL-адреса вроде:
index.php?q=123&w=456&e=789
и мне нужно переписать их примерно так:
index/123/456/789
без использования «если».
На данный момент я попробовал:
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;
}
}