Приведение uri

Igor Sysoev is at rambler-co.ru
Wed Feb 22 13:09:25 MSK 2006


On Wed, 22 Feb 2006, Alexey Polyakov wrote:

> Проблема примерно в следующем.
> Я использую map $http_host $static_root {...} для определения где у
> какого хоста лежит статика. Довольно стандартный подход насколько я
> понял:
>
> rewrite ^(.*?)\.((?i)jpg|jpeg|gif|bmp|css|js|ico|png|swf|wmv|rar|mp3|avi|txt|mov|wav|ogg|exe|dll)$
> /$static_root$1.$2 last;
>
>  location ~* \.(jpg|jpeg|gif|bmp|css|js|ico|png|swf|wmv|rar|mp3|avi|txt|mov|wav|ogg|exe|dll)$
> {
>    root /home;
>    expires 30d;
>  }

Лучше rewrite поставить внтури location. Тогда для прочих запросов, будет
выполнятся только один regexp.

> В static_root - путь до document root хоста, напр. username2/public_html/domain4
>
> Какой при таком подходе корректно разобраться с запросами типа
> http://site.com/../../picture.gif ? т. е. сделать, чтобы путь не
> "поглощался"?

Если приходит запрос вида "GET ../../picture.gif HTTP/1.0", то nginx
нормализует его ещё до того, как будет делать rewrite на уровне server
и проверять location'ы. В данном случает ответ будет 400.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list