Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: allow/deny and return
Hello!
On Thu, Oct 17, 2013 at 09:13:46PM +0300, Gena Makhomed wrote:
[...]
> >Как уже и предлагалось - методом правильного документирования того
> >факта, что директивы модуля rewrite - это часть процесса выбора
> >конфигурации. И всяческие директивы allow/deny/whatever -
> >применяются уже после того, как оный выбор случился.
>
> а что делать, если необходимо, чтобы директивы модуля
> rewrite отработали после проверок allow/deny/whatever?
То же самое, что и в других подобных ситуациях - использовать
другие механизмы.
[...]
> >>а разве есть лучший вариант решения проблем с if ?
> >>"ничего не делать" - этот вариант хуже чем try_files
> >>
> >>и try_files и handler уменьшают количество случаев,
> >>когда необходимо использовать "опасные" варианты if.
> >
> >Повторяю: добавление try_files не решило проблем с if'ом. В
> >результате как раз с проблемами if'а - ничего не было сделано, а
> >вместо этого усилия были потрачены на try_files и борьбу с его
> >проблемами. Если бы вместо добавления try_files соответствующие
> >усилия были потрачены именно на _решение_ проблем - было бы лучше.
>
> никто и не обещал, что try_files решит все проблемы с if.
>
> но многие случаи написания конфигурации try_files упрощает.
>
> причем это вне зависимости от того, есть у if проблемы или их нет.
>
> и во многих случаях можно обойтись try_files без использования if.
Да-да, именно так. И в сухом остатке мы имеем больше проблем, чем
их было до введения директивы try_files.
> >И это общая проблема всех подобных попыток "уменьшить количество
> >случаев" вместо реального решения проблемы. Решать проблему всё
> >равно рано или поздно придётся, и откладывание этого решения -
> >лишь ухудшает ситуацию.
>
> что в таком случае можно считать рельным решением проблем директивы if,
> - чтобы не осталось ни одного глюка из http://wiki.nginx.org/IfIsEvil ?
>
> про проблемы директивы if говорится очень давно, но видимо эти проблемы
> нетривиальные, раз до сих пор никому так и не удалось их реально решить
Я описал правильное с моей точки зрения решение ещё при создании
этой статьи на wiki:
http://wiki.nginx.org/IfIsEvil#Why_this_happens_and_still_not_fixed
: Looks like the only correct fix would be to disable non-rewrite
: directives inside if completely. It would break many configuration
: out there though, so wasn't done yet.
Возможно, хорошим альтернативным вариантом будет вычищение всех
проблем, которые возникают при использовании неявных location'ов.
--
Maxim Dounin
http://nginx.org/en/donation.html
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|