ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Как понимать термин URI в документации?



> Тогда что на что на что перезаписывается (делается rewrite) в выражении
> http://mydomain.nl$request_uri?
> Вот в чем вопрос?

К концу строки "http://mydomain.nl"; прибавляется строка "/foo?param".

Оригинальный запрос был

GET /foo?param
Host: www.mydomain.nl

он будет обработан как запрос

GET /foo?param
Host: mydomain.nl

Ну со словом permanent будет не замена запроса внутри nginx, а выдача ответа

301 lalala
Location: http://mydomain.nl/foo?param

>
> Игорь написал следующее, но я че-то не могу до конца осознать -
>

Игорь написал для случая, когда в строке замены (второй аргумент
rewrite) вы пишете ещё какие-то аргументы запроса (это то, что в URI
после ?).

То есть вопросительный знак в конце важен, когда вы хотите изменить ?param.

На запрос /users/mike?ads=1 правило

rewrite  ^/users/(.*)$  /show?user=$1?  last;

даёт /show?user=mike

а без вопросительного знака в конце (rewrite  ^/users/(.*)$
/show?user=$1  last;)
даёт /show?user=mike&ads=1

> Цитата:
>
> Если в строке замены указаны аргументы, то предыдущие аргументы запроса
> добавляются после них. Можно отказаться от этого добавления, указав в конце
> строки замены знак вопроса:
>
>         rewrite  ^/users/(.*)$  /show?user=$1?  last;
>
> Попробую еще раз.
>
> Делается запрос http://www.site.com/foo?param
> Надо сделать rewrite на  http://site.com/foo?param
>
> Пишем правило:
>
> rewrite ^  http://site.com/$request_uri? permanent;
>
> Здесь ^ = foo, которое перезапиывается на
>
> http://site.com/$request_uri?
>
> в конце выражения стоит знак вопроса, значит
> предыдущие аргументы запроса не добавляются после них.
>
> Не понятно что не добавляется после чего.
>
> В итоге получаем, что foo перезаписывается в
> http://site.com/$request_uri?, а результирующая строка принимает вид
>
> http://www.site.com/http://site.com/$request_uri.
>
> Извините, но я здесь ничего не понял.
>
> Если кто может, расскажите подробно в чем фокус.
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@xxxxxxxxx
> http://nginx.org/mailman/listinfo/nginx-ru
>
>
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.