забавная грабля

Dmitry Kondratyev null at bikeman.ru
Sun May 22 11:26:26 MSD 2005


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/ }

то всё приходит в норму.






More information about the nginx-ru mailing list