Я использую 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"?
Если вы хостируете только домен 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;
...
}
Смотрите этот документ для более подробной информации
.