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 [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
