Подскажите где я туплю. :-)
rewrite ^/dir/page.php\?param=(.+)$ permanent;
Почему-то не работает.
rewrite проверят только URI без агрументов. В данном случае можно
сделать так:
location = /dir/page.php {
if ( $query_string ~ "^param=(.+)$" ) {
set $redirect $1;
rewrite ^ ? permanent;
}
}
Спасибо, помогло. Только не понял зачем вопрос в конце
Вроде и без него всё работает. Теперь другая проблема:
location /dir/page.php {
if ($query_string ~ "^param1=(.+)¶m2=value2$" ) {
set $redirect $1;
rewrite ^ permanent;
}
}
Проблема состоит в том, что итоговый урл получается
вместо
Должно быть не
Так ?
Вот для этого и нужен "?" в конце:
------------
Если в строке замены указаны аргументы, то предыдущие аргументы запроса
добавляются после них. Можно отказаться от этого добавления, указав в
конце строки замены знак вопроса:
rewrite ^/users/(.*)$ /show?user=$1? last;
------------
Игорь Сысоев