ПРОЕКТЫ 


  АРХИВ 


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



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



 




Copyright © Lexa Software, 1996-2009.