Как удалить завершающие косые черты из URL с помощью nginx

Я пытаюсь удалить завершающие косые черты из URL-адресов. Я много искал и пробовал некоторые решения, но у меня они не работали.

Я попробовал это

rewrite ^ / (. *) / $ / $ 1 перманент;

но он оставляет одну косую черту на end (example.com/ или example.com/post/), но мне нужны example.com и example.com/post

. Я также попробовал это решение

if ($request_uri ~ (.*?\/)(\/+)$ ) 
{
  return 301 $scheme://$host$1;
}

, и оно одно из лучших, но оно также оставляет одну косую черту на конец.

А еще я получал ошибку в консоли после всех таких попыток:

GET http://example.com/post 404 (Not Found)

Я новичок в nginx и мало что знаю, как мне добиться перенаправления с URL-адресов с завершающей косой чертой?

0
задан 25 April 2020 в 19:32
1 ответ

Никаких "если" (или "но") не требуется, достаточно переписать:

rewrite /((?U).*)(/+)$ /$1 redirect;

Без "нежадных" - (?U) - $1 подберет все, кроме одного /.

0
ответ дан 25 April 2020 в 12:55

Теги

Похожие вопросы