Можно ли разместить перенаправление в одном блоке сервера для перенаправления любых https (порт 443), у которых нет www, на https: // www ...? Я не хочу помещать это перенаправление в каждый отдельный блок сервера для каждого конкретного домена.
В настоящее время у меня есть это, но он не позволяет запускать nginx (в Windows):
server {
listen 443 ssl;
server_name _;
if ($host !~* ^www\.(.*)$) {
return 301 https://www.$host$request_uri;
}
}
server {
listen 443 ssl;
server_name example.com;
# ...
}
server {
listen 443 ssl;
server_name anotherexample.com;
# ...
}
Ваша конфигурация должна выглядеть так:
server {
listen 443 ssl default_server;
server_name _;
ssl_certificate /path/to/$ssl_server_name.crt;
ssl_certificate_key /path/to/$ssl_server_name.key;
return 301 https://www.$host$request_uri;
}
У вас должны быть файлы сертификатов с именами, соответствующими вашим доменам. Если ваш домен example.com
, тебе нужно иметь example.com.crt
и example.com.key
.
Кроме того, вам нужно убедиться, что это единственный default_server
блок для порта 443.