Задать вопрос
@FreeAero

Как составить правила реврайта для nginx, которое будет добавлять слеш в конце ссылки?

Здравствуйте, обращаюсь к Вам после гугла, помогите составить правила реврайта для nginx, которое будет добавлять слеш в конце ссылки следующим образом

site.ru/controller => site.ru/controller/
site.ru/controller?params=2 => site.ru/controller/?params=2

И при этом не реврайтить файлы с расширением jpg png css jss..etc

знаю что в htaccess было бы вот так

RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.
RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]


winginx.ru/htaccess - Не помог.
  • Вопрос задан
  • 11225 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@globalmac
У себя делаю примерно так:

location / {
    rewrite ^([^.\?]*[^/])$ $1/ permanent;
    try_files $uri @clean_url;
}


Force Trailing Slash:

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

Данная строка добавляет слэш / в конце каждого URL, только в том случаее если в URL нет точки или параметров. Тоесть после example.com/index.php или example.com/do?some=123 слэш не поставится.
Ответ написан
Комментировать
vapmaster
@vapmaster
# Исключение по расширению файлов
RewriteCond %{REQUEST_URI} !(jpg|png|gif|ico)
# Дальше всё по старому
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.
RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]
Ответ написан
Ваш ответ на вопрос

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

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