Как удалить массовые конечные косые черты (Nginx)

Мне нужно удалить массовые конечные косые черты, теперь у меня есть

rewrite ^/(.*)/$ /$1 permanent;

Итак www.example. com / становится www.example.com .

Это хорошо, но когда я перехожу на www.example.com /// (любое количество косых черт), это не перенаправляет. Мне нужно сделать любое количество косых черт в конце перенаправления на страницу без косой черты.

2
задан 27 December 2018 в 11:41
1 ответ

Nginx нормализует URI, удаляя последовательные вхождения / перед его обработкой с помощью директив rewrite и location . Таким образом, ваше правило никогда не видит последовательные / s. Подробнее см. этот документ .

Исходный запрос доступен как $ request_uri и может быть проверен с помощью блока if .

Например:

if ($request_uri ~ ^(.*/)/($|\?.*)) { return 301 $1$2; }

См. это предупреждение об использовании if .

2
ответ дан 3 December 2019 в 11:24

Теги

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