Maxim Dounin
August 25, 2015 08:18AM
Hello!

On Tue, Aug 25, 2015 at 07:42:10AM -0400, Denis76 wrote:

> День добрый. Нужно написать реврайт для некоторый uri на иврите.
> В логе nginx обращения представлены в виде
> /%d7%a1%d7%9c%d7%99%d7%97%d7%94,+%d7%9e%d7%94+%d7%94%d7%a9%d7%a2%d7%94?!.html
>
> однако, если делаю что-то типа такого для теста:
> if ($uri =
> "/%d7%a1%d7%9c%d7%99%d7%97%d7%94,+%d7%9e%d7%94+%d7%94%d7%a9%d7%a2%d7%94?!.html")
> {
> return 403;
> }
> или
> map "$uri" $bad {
> "/%D7%A1%D7%9C%D7%99%D7%97%D7%94,+%D7%9E%D7%94+%D7%94%D7%A9%D7%A2%D7%94?!.html"
> "1";
> }
>
> то правила не срабатывают. Как я понимаю проблема в экранировании некоторых
> символов, коих тут вижу ",%!?." какие из них должны быть экранированы и дело
> ли вообще в этом?

Значение переменной $uri - в раскодированном виде, т.е. проверять
надо текст, а не %-escaped строку. Если хочется проверять
ровно то значение, которое передал клиент, то следует использовать
переменную $request_uri (note: включает в себя аргументы запроса).

Документация тут:

http://nginx.org/r/$uri
http://nginx.org/r/$request_uri

--
Maxim Dounin
http://nginx.org/

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

nginx, uri и иврит

Denis76 August 25, 2015 07:42AM

Re: nginx, uri и иврит

Maxim Dounin August 25, 2015 08:18AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 162
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready