@Zeroxzed

Перенаправление в Nginx с несуществующего url до существующего?

Добрый день. Заметил на одном из сайтов странное поведение ngixn, которое специально не настраивал. Например, если набрать несуществующий адрес - h_ttp://site.ru/monitor идет 301 редирект и открывается страница h_ttp://site.ru/monitoring-zabbix. Если же набрать адрес, который дополнением символов невозможно привести к существующей странице, то выходит ошибка 404.

Кто-то может подсказать, какой параметр nginx отвечает за такое поведение? Сайт проксируется с одного сервера на другой. Конфиг первого сервера:

server {
    listen 80;
    server_name site.ru www.site.ru;
    access_log /var/log/nginx/site/access.log;
    error_log /var/log/nginx/site/error.log;
    return 301 https://$server_name$request_uri;
    }

server {
    listen 443 ssl http2;
    server_name site.ru;
    access_log /var/log/nginx/site/ssl-access.log;
    error_log /var/log/nginx/site/ssl-error.log;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/site.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/site.ru/privkey.pem;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;

    location /.well-known/acme-challenge/ {
    root /web/sites/site.ru/www/;
    }
    location / {
    proxy_pass http://10.10.10.4;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    }

    location ~* ^.+.(js|css|png|jpg|jpeg|gif|ico|woff)$ {
    access_log off;
    proxy_pass http://10.10.10.4;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    }
}


Второй сервер, где сам сайт:

server {
    listen 80;
    server_name site.ru;
    root /web/sites/site.ru/www/;
    index index.php index.html index.htm;
    access_log /web/sites/site.ru/log/access.log main;
    error_log /web/sites/site.ru/log/error.log;

    keepalive_timeout		60;
    set_real_ip_from 10.10.10.2;
    real_ip_header X-Real-IP;

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

    location ~* ^.+.(js|css|png|jpg|jpeg|gif|ico|woff)$ {
    access_log off;
    expires max;
    }

    location ~ \.php$ {
    try_files  $uri =404;
    fastcgi_pass   unix:/var/run/php-fpm/site.sock;
    fastcgi_index index.php;
    fastcgi_param DOCUMENT_ROOT /web/sites/site.ru/www/;
    fastcgi_param SCRIPT_FILENAME /web/sites/site.ru/www$fastcgi_script_name;
    fastcgi_param PATH_TRANSLATED /web/sites/site.ru/www$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_param QUERY_STRING $query_string;
    fastcgi_param REQUEST_METHOD $request_method;
    fastcgi_param CONTENT_TYPE $content_type;
    fastcgi_param CONTENT_LENGTH $content_length;
    fastcgi_param HTTPS on;
    fastcgi_intercept_errors on;
    fastcgi_ignore_client_abort off;
    fastcgi_connect_timeout 60;
    fastcgi_send_timeout 180;
    fastcgi_read_timeout 180;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 4 256k;
    fastcgi_busy_buffers_size 256k;
    fastcgi_temp_file_write_size 256k;
    }

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

    location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
    }

    location ~ /\.ht {
    deny all;
    }
}

server {
     listen 80;
     server_name  www.site.ru;
     rewrite ^ http://site.ru$request_uri? permanent;
}
  • Вопрос задан
  • 378 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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