Добавьте косую черту в конец URL-адреса, за исключением изображений, css, js и xml и сохраняя порт

Я пытаюсь добавить косую черту в конец всех URL-адресов на моем сайте, кроме файлов с расширениями (все типы изображений, css, js, xml), сохраняя при этом порт для моей локальной среды.

Это поведение, которое я ищу:

In production:

 https://testsite.com/page/something →  https://testsite.com/page/something/

 https://testsite.com/page/something/img.jpg →  https://testsite.com/page/something/img.jpg

 https://testsite.com/page/something?param=23 →  https://testsite.com/page/something?param=23/

Local environment

localhost:1080/page/something → localhost:1080/page/something/

localhost:1080/page/something/img.jpg → localhost:1080/page/something/img.jpg

localhost:1080/page/something?param=23 → localhost:1080/page/something?param=23/

Я пытался сделать это, добавив:

if ($request_uri ~ ^(.*)(\/(?!jpg|gif|png|jpeg|xml|css|js)([^.\/])+)$) {
            try_files $uri $uri/ /index.php?$query_string/;
        }

внутри

location / 

заявление и для порта я написал

port_in_redirect off;

директива.

Полная конфигурация выглядит следующим образом:

server {
    listen 80;
    server_name _;
    root /var/www/html/public;

    index index.html index.htm index.php;
    charset utf-8;

    client_max_body_size 100m;
    
    port_in_redirect off;

    access_log  /var/log/nginx/access.log  main;
    error_log /var/log/nginx/error.log;

    gzip on;
    gzip_types text/plain text/css application/javascript text/javascript image/svg+xml image/png image/gif application/font-woff application/xml application/json application/octet-stream;
    gzip_proxied any;
    gzip_vary on;

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt { access_log off; log_not_found off; }

    location / {
        if ($request_uri ~ ^(.*)(\/(?!jpg|gif|png|jpeg|xml|css|js)([^.\/])+)$) {
            try_files $uri $uri/ /index.php?$query_string/;
        }
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass web:9000;
        fastcgi_read_timeout 300;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

}

Однако сейчас кажется, что сайт вообще не загружается. Я хотел бы знать, как лучше всего это сделать. Заранее спасибо.

слэш-аргументы расширения порта

ксенофил

0

Добавить комментарий

Ваш адрес email не будет опубликован.