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
|