Re: $request uri и anchors
Валентин Бартенев
ne at vbart.ru
Tue Oct 30 21:46:18 UTC 2012
On Wednesday 31 October 2012 00:32:22 madad wrote:
> Добрый день.
>
> Есть задача сделать редирект по полному совпадению URI, в котором
> содержится anchor. Вот такой:
>
>
> https://www.domain.com/#register?lead_type=business_trial&lead_source=websi
> te>est=false
>
> Сделал следующее:
> location / {
> if ($request_uri =
> /#register?lead_type=business_trial&lead_source=website>est=false) {
> rewrite ^
> "http://www.domain.com/register/business_trial/?lead_source=website";
> break;
> }
> ..
> }
>
> Включил debug, захожу на
> https://www.domain.com/#register?lead_type=business_trial&lead_source=websi
> te>est=false - не работает.
> В логи пишет что $args пустой:
>
> 2012/10/30 20:07:15 [debug] 16144#0: *1 http args: ""
>
> Как только убираю #register из запроса и из условия сразу все работает как
> нужно.
> То есть:
> URL
> https://www.domain.com/?lead_type=business_trial&lead_source=website>est=
> false Условие if ($request_uri =
> /?lead_type=business_trial&lead_source=website>est=false)
> Лог 2012/10/30 20:11:03 [debug] 16182#0: *1 http args:
> "lead_type=business_trial&lead_source=website>est=false"
>
> К сожалению нужно матчить URL именно с anchor.
>
> PS. nginx версии 1.2.3
>
"#" и всё что после - называется "fragment identifier" [1], служит для навигации
по документу и обычно на сервер браузерами не отправляется.
[1] http://tools.ietf.org/html/rfc3986#section-3.5
--
Валентин Бартенев
http://nginx.com/support.html
http://nginx.org/en/donation.html
Подробная информация о списке рассылки nginx-ru