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

Редирект с http на https без слэша в конце, как реализовать в nginx?

Как сделать редирект с http на https без слэша в конце в nginx?

Есть такой конфиг:

server {
    server_name test.com;

    listen 192.168.17.175:80;

    return 301 https://$host$request_uri;

    error_log /var/www/test.com/data/logs/test.com-frontend.error.log;
    access_log /var/www/test.com/data/logs/test.com-frontend.access.log;
}


server {
    server_name www.test.com  ;
    listen 192.168.17.175:80;
    listen 192.168.17.175:443 ssl http2 ;

    ssl_certificate "/var/www/httpd-cert/test.com_2021-09-15-05-44_21.crt";
    ssl_certificate_key "/var/www/httpd-cert/test.com_2021-09-15-05-44_21.key";

    add_header Strict-Transport-Security "max-age=31536000" always;

    return 301 $scheme://test.com$request_uri;

    error_log /var/www/test.com/data/logs/test.com-frontend.error.log;
    access_log /var/www/test.com/data/logs/test.com-frontend.access.log;
}


Если ввести curl -I http://test.com/ то получается что редиректит на https://test.com/ со слэшем в конце, а как сделать без?
Правило реврита пробовал:
rewrite ^/(.*)/$ /$1 permanent;
Не работает, если без http, то работает редирект без слэша.
  • Вопрос задан
  • 389 просмотров
Подписаться 3 Средний 2 комментария
Ответ пользователя vreitech К ответам на вопрос (2)
fzfx
@fzfx
18,5 дм
редирект на https://test.com/ без слеша на конце никак не сделать, поскольку в URL после имени домена в обязательном порядке идёт слеш.
Ответ написан