Re: Поведение try_files в зависимости от access_log
Maxim Dounin
mdounin at mdounin.ru
Wed Jun 3 14:27:32 UTC 2015
Hello!
On Wed, Jun 03, 2015 at 04:57:24PM +0300, Daniil wrote:
> Здравствуйте,
>
> Есть следующий конфиг:
>
> # например GET /apple/iphone/info
> location ~ .+/info$ {
> index index.php;
> try_files $uri $uri/ @php;
> access_log bad_guys.log if=$is_bad_guy;
> }
>
> location @php {...}
>
>
> Переменная $is_bad_guy вычисляется через цепочку map и может принимать
> значение 0 или 1.
>
> Если $is_bad_guy = 0, то локация срабатывает как надо и try_files переходит
> на @php если не найдены файлы в root каталоги.
>
> Но, если $is_bad_guy = 1 (срабатывает access_log), то сервер возвращает
> 404, в логе ошибок появляется сообщение "File not found" и обработка не
> доходит до @php.
>
> В чем здесь может быть ошибка?
Ошибка где-то ещё, смотрите внимательно на конфиг целиком.
Например, к похожему эффекту может привести использование
директивы if модуля rewrite в данном location'е, см.
http://wiki.nginx.org/IfIsEvil.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru