Problema ao substituir domínios não www no nginx

1

Estou usando o CentOS 7 com o Nginx. Quero converter todos os domínios não www para domínios "www", por exemplo, Se alguém digitar "abc.example.com", eu gostaria que eles fossem redirecionados para "www.example.com". Eu tentei isso

server {
  listen 80;
  server_name "~^(?!www\.).*";
  return 301 $scheme://www.$host$request_uri;
}

no meu arquivo de configuração específico do site, mas o que está acontecendo é que, se alguém inserir "abc.example.com", ele será redirecionado para "www.abc.example.com". Como posso corrigir o acima para substituir em vez de pre-pend "www"?

    
por Dave 01.03.2018 / 21:01

1 resposta

3

Se você estiver hospedando apenas example.com domain e quiser que tudo seja redirecionado para www.example.com , use um servidor padrão em vez de um servidor de expressões regulares.

Por exemplo:

server {
    listen 80 default_server;
    return 301 $scheme://www.example.com$request_uri;
}
server {
    listen 80;
    server_name www.example.com;
    ...
}

Veja este documento para saber mais.

    
por 01.03.2018 / 22:13