Я пытаюсь удалить завершающие косые черты из 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-адресов с завершающей косой чертой?
Никаких "если" (или "но") не требуется, достаточно переписать:
rewrite /((?U).*)(/+)$ /$1 redirect;
Без "нежадных" - (?U) - $1 подберет все, кроме одного /.