#nginx #nginx-config
#nginx #nginx-конфигурация
Вопрос:
Это моя текущая конфигурация nginx:
server { server_name mydomain.com www.mydomain.com; listen 443 ssl; ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; } server { if ($host = www.mydomain.com) { return 301 https://$host$request_uri; } if ($host = mydomain.com) { return 301 https://$host$return_uri; } server_name mydomain.com www.mydomain.com listen 80; return 404; }
Это работает нормально, но мне www
тоже нужно перенаправить non-www
. Как это сделать?
Ответ №1:
Попробуйте это:
location / { if ($http_host ~* "^www.example.com"){ rewrite ^(.*)$ https://example.com/$1 redirect; } }
Комментарии:
1. Это сработало, однако я столкнулся с проблемой, когда клиент добавляет
/
в конец URL-адреса, перенаправляет наmydomain.com//
него и получает404
ошибку, поэтому я изменилhttps://example.com/$1
наhttps://example.com$1
.