rewrite q
Dmitry Kondratyev
null at bikeman.ru
Wed Sep 28 18:12:10 MSD 2005
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
Что делать? :-)
More information about the nginx-ru
mailing list