part_os
@part_os
Сложное в простом

Как в nginx убрать слеш только на файлах?

Всем привет, подскажите пожалуйста пытаюсь настроить что бы не было слеша на всех файлах
типо https://photo-gileva-olga.ru/sitemap.xml/
но что бы оставался на https://photo-gileva-olga.ru/packages/

Подскажите как настроить nginx что бы было такое поведение?
site.ru/index.php - открытый если это файл
site.ru/inex/ - закрытый если это директория
server {
    listen 80;

    server_name photo-gileva-olga.ru;

    if ($request_uri ~ "^(.*)index\.(?:php|html)/(.*)") {
         return 301 $1$2;
    }
    if (!-f $request_filename) {
        rewrite [^/]$ $uri/ permanent;
    }

    if ($request_uri ~ ^(?P<left>[^?]*?)//+(?P<right>[^?]*)) {
        rewrite ^ $left/$right permanent;
    }

    index index.php;

    location / {
       try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass php:9000;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        internal;
    }

    location ~ \.php$ {
        return 404;
    }

}
  • Вопрос задан
  • 88 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы