ПРОЕКТЫ 


  АРХИВ 


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: забавная грабля



On Sun, 22 May 2005, Dmitry Kondratyev wrote:

Serge wrote:
21.05.05, Dmitry Kondratyev<null@xxxxxxxxxx> написал(а):

Наступил тут. :-)

есть
location / { proxy_pass ... }
location /dir { alias ... }

Так вот, если дёргаю /dir или /dir/file, то всё хорошо и файл берётся из
указанного альясом места, а вот если дёргаю /dir.php или /dir_foo.php,
то оно почему-то говорит 404 вместо того, чтобы проксировать. Или я
чего-то непонимаю, или это всё же грабли. :-) nginx 0.1.28.

PS Почитал ещё раз мануал насчёт location - вроде так и должно быть и
всё даже правильно, т.к. урл проверяется до максимального совпадения, но
конструкция вроде

location ~ ^/dir(/.*)?$ { alias ... } даёт 404 на /dir/...

Это легко может быть, так как сочетание регулярного выражения в location
и alias сейчас не поддерживается. И я не знаю, делать ли поддержку,
когда ту же функциональность можно получить с помощью rewrite.

Вижу вариант только описать локейшн вроде ^/dir[^/].+ или что-нибудь
вроде того отдельно на проксирование - скорей всего так оно заработает.
Но как-то криво это и неправильно на мой взгляд. Попроще никак?

location / { proxy_pass ... }
location /dir/ { alias ... }

По моему, так проще.

Это я уже пробовал - ее работает так. 404 на непроксируемый контент.

Что именно пробовал - "location /dir" или "location /dir/" ? Это разные
вещи. /dir.php и /dir_foo.php попадают под /dir, но не попадют под /dir/.


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




 




Copyright © Lexa Software, 1996-2009.