youmixx
@youmixx
PHP Developer

Как с помощью nginx добавить слеш в конце url на сайте Laravel?

Есть сайт на ларавел. На сайте есть блог /blog. У сайта есть категории, /blog/namecategory. Если выбрать фильтр все категории, будет /blog/all.

Мне нужно настроить NGINX так, чтобы для /blog/all всегда убирался слеш, а для /blog/namecategory всегда добавлялся в конец слеш и было /blog/namecategory/

Как это можно сделать?

Я пробовал сделать вот так:
location /blog {
        rewrite ^(.*[^/])$ $1/ permanent;
    }


Тогда слеш добавляется, но выходит 404 от nginx.
61573b6e1ca9c403496400.png

UPD:
Так-же хороший способ, который работает:
if ($request_uri !~ "(\.html|\/)$") { return 301 "$request_uri/"; }

Но он работает для всего сайта. Если я заключу его в location /blog {}, то он БУДЕТ добавлять слеш только в блоге, но выдавать 404.
  • Вопрос задан
  • 1101 просмотр
Решения вопроса 1
@dodo512
location /blog/ {
    rewrite ^/blog/all$  /index.php  last;
    
    rewrite ^(/blog/all)/$  $1  permanent;
    
    rewrite ^(/blog/.*[^/])$  $1/  permanent;
    
    rewrite ^ /index.php last;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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