
Я использую CentOS 7 с Nginx. Я хочу преобразовать все домены без www в домены с "www", например, если кто-то вводит "abc.example.com", я хочу, чтобы он был перенаправлен на "www.example.com". Я попробовал это
server {
listen 80;
server_name "~^(?!www\.).*";
return 301 $scheme://www.$host$request_uri;
}
в моем файле конфигурации, специфичном для сайта, но вместо этого происходит следующее: если кто-то вводит "abc.example.com", он перенаправляется на "www.abc.example.com". Как мне исправить вышесказанное, чтобы заменить, а не добавлять "www"?
решение1
Если вы размещаете только example.com
домен и хотите, чтобы все перенаправлялось на www.example.com
, вам следует использовать сервер по умолчанию, а не сервер регулярных выражений.
Например:
server {
listen 80 default_server;
return 301 $scheme://www.example.com$request_uri;
}
server {
listen 80;
server_name www.example.com;
...
}
Видетьэтот документдля большего.