Re: location + rewrite и (де)кодирование URI
Maxim Dounin
mdounin на mdounin.ru
Вт Июн 18 11:09:57 UTC 2019
Hello!
On Tue, Jun 18, 2019 at 01:27:36PM +0300, Gena Makhomed wrote:
> On 18.06.2019 11:27, Maxim Dounin wrote:
>
> >> Есть такой фрагмент документации на директиву location:
> >>
> >> Синтаксис: location [ = | ~ | ~* | ^~ ] uri { ... }
> >>
> >> Для сопоставления используется URI запроса в нормализованном виде,
> >> после декодирования текста, заданного в виде “%XX”, преобразования
> >> относительных элементов пути “.” и “..” в реальные и возможной
> >> замены двух и более подряд идущих слэшей на один.
>
> >> Есть такой фрагмент конфига:
> >>
> >> location ~ ^/wiki/(?<title>.*) {
> >> return 301 https://$host/$title$is_args$args;
> >> }
> >>
>
> Получается, что в документации написано все правильно, приведенный
> фрагмент конфига содержит ошибку, и правильно будет переписать его
> таким образом:
[...]
> Только в этом случае поведение nginx будет полностью соответствовать
> RFC 3986 и более простого варианта решения этой задачи не существует?
Существует. Проще всего сделать так:
rewrite ^/wiki/(.*) https://$host/$1;
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru