Вторник, 28 Июль 2009
nginx: rewrite в именованный location
В nginx есть интересный механизм «именованных» location.
Сейчас нет красивого способа туда попасть. Собственно не большой патч, который добавляет возможность делать:
rewrite ^ @name;
В nginx есть интересный механизм «именованных» location.
Сейчас нет красивого способа туда попасть. Собственно не большой патч, который добавляет возможность делать:
rewrite ^ @name;
Комментарии
error_page 345 = @name; return 345; Это некрасиво? :-)
Это ужасно!
Я делаю так: try_files @name;
а что это дает?
Задача — попасть в именованный location.
try_files файл [файл …] (uri|=код) В случае, если ни один файл не найден, то делается внутренний редирект на последний параметр, который может быть именовынным location.
Посмотрев по коду, обнаружил, что редирект делается действительно по последнему параметру, даже если он всего один. Таким образом, разрешаем в конфиге минимум 1 параметр к try_files и используем try_files @location.
Помойму это костыль большей, чем обучить rewrite.
И rewrite, наверное, симантическей правильнее.
Форма комментирования для «nginx: rewrite в именованный location»
Не готов дискутировать по этому поводу. Просто предложил ещё один вариант решения.
Хотя, признаю, что в случае c rewrite появляется бОльшая гибкость, т.к. идёт проверка по регулярному выражению.
Жаль, что Игорь этот код не воткнет в upstream.