Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: забавная грабля
Dmitry Kondratyev wrote:
Вижу вариант только описать локейшн вроде ^/dir[^/].+ или что-нибудь
вроде того отдельно на проксирование - скорей всего так оно
заработает.
Но как-то криво это и неправильно на мой взгляд. Попроще никак?
location / { proxy_pass ... }
location /dir/ { alias ... }
По моему, так проще.
Это я уже пробовал - ее работает так. 404 на непроксируемый контент.
Что именно пробовал - "location /dir" или "location /dir/" ? Это разные
вещи. /dir.php и /dir_foo.php попадают под /dir, но не попадют под /dir/.
Я понял почему 404 было - когда пишешь /dir/ для альяса, то nginx не
делает редирект при запросе GET /dir на /dir/ и запрос проксируется на
бэкенд. При запросе GET /dir/ всё хорошо. Может добавить редирект, чтобы
дополнительных локейшнов не городить? У меня похожие грабли во многих
местах, как оказалось, расставлены. Но не на все довелось наступить
пока. :-)
А вот ещё проблема - в мануале про альяс не нашёл, потому не знаю
считать ли такое поведение нормальным:
location / { proxy_pass ... }
location = /dir { alias /dir }
location /dir/ { alias /dir }
Редирект при запросе /dir на /dir/ делается, а потом отплёвывается 404.
Если вместо последней строчки написать
location /dir/ { alias /dir/ }
то всё приходит в норму.
|