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=(.+)&param2=value2$" ) {
>>       set  $redirect  $1;
>>       rewrite  ^   http://site/page.php?param=$redirect  permanent;
>>     }
>> }
>>
>> Проблема состоит в том, что итоговый урл получается
>> http://site/page.php?param=$value1?param1=value1&param2=value2 вместо
>> http://site/page.php?param=$value1
> 
> 
> Должно быть не
> 
> http://site/page.php?param=$value1___?___param1=value1&param2=value2
> http://site/page.php?param=$value1___&___param1=value1&param2=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