polyanin
@polyanin
Golang, PHP & Symfony developer

Как написать регулярные выражения для rewrite nginx?

Здравствуйте. Помогите написать 2 регулярных выражения.
1. Если строка запроса содержит точку в последней части (без учета параметров запроса), то завершающего слеша быть не должно. Например:

/news/index.html
/top.news/item/123.htm
/test/test/te.st/test/any_text.any_text


2. Если строка запроса НЕ содержит точку в последней части (без учета параметров запроса), то должен быть завершающий слеш. Например:
/
/news/
/top.news/item/
/test/test/te.st/test/
/test/te.st/te.st/test/


Везде 301 redirect

для первого варианта у меня получилось следующее

rewrite ^(.*\.[^/]*)/$ $1 permanent;

а второй никак пока не получается
  • Вопрос задан
  • 2958 просмотров
Решения вопроса 1
SergeyRodyushkin
@SergeyRodyushkin
.NET Developer
Второй, навскидку, можно сделать так:
rewrite ^(.*/)?([^\.]*[^/])$ $1$2/ permanent;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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