Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev ][Date Next ][Thread Prev ][Thread Next ][Date Index ][Thread Index ]
Re: rewrite q
Igor Sysoev wrote:
Спасибо, помогло. Только не понял зачем вопрос в конце
http://$redirect.site.ru/
Вроде и без него всё работает. Теперь другая проблема:
location /dir/page.php {
if ($query_string ~ "^param1=(.+)¶m2=value2$" ) {
set $redirect $1;
rewrite ^ http://site/page.php?param=$redirect permanent;
}
}
Проблема состоит в том, что итоговый урл получается
http://site/page.php?param=$value1?param1=value1¶m2=value2 вместо
http://site/page.php?param=$value1
Должно быть не
http://site/page.php?param=$value1___?___param1=value1¶m2=value2
http://site/page.php?param=$value1___&___param1=value1¶m2=value2
Так ?
Вот для этого и нужен "?" в конце:
http://sysoev.ru/nginx/docs/http/ngx_http_rewrite_module.html#rewrite
------------
Если в строке замены указаны аргументы, то предыдущие аргументы запроса
добавляются после них. Можно отказаться от этого добавления, указав в
конце строки замены знак вопроса:
rewrite ^/users/(.*)$ /show?user=$1? last;
------------
Перенесу общение сюда, потому как достало заменять название сайта и страниц. :-)
Смотри, есть:
location /default/do.php {
if ($query_string ~ "^aid=(.+)(&|$)" ) {
set $param $1;
rewrite ^
http://photofile.ru/album.php?id=$param ? permanent;
}
if ($query_string ~ "^id=(.+)(&|$)" ) {
set $param $1;
rewrite ^
http://photofile.ru/large_image.php?id=$param ? permanent;
}
}
Когда дёргаешь http://photofile.ru/default/do.php?id=12331158&type=1
nginx сейчас возвращает локейшн
http://photofile.ru/large_image.php?id=12331158&type=1
а хотелось бы http://photofile.ru/large_image.php?id=12331158
Что делать? :-)