Eu olhei muitosTópicos SEe fiz váriospesquisas no Googlee não consigo descobrir por que não consigo redirecionar www.mysite.com
para mysite.com
meu servidor nginx.
O primeiro bloco do servidor faz o http://mysite.info
-> https://mysite.info
redirecionamento conforme esperado. Portanto, não sei por que o segundo bloco do servidor não está fazendo o mesmo para www.mysite.info
-> mysite.info
.
Aqui está a parte relevante do meu arquivo nginx.conf:
server {
server_name mysite.info;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
server_name www.mysite.info;
rewrite ^ https://mysite.info$request_uri? permanent;
}
server {
listen 443;
ssl on;
server_name mysite.info;
# other directives, handling PHP, etc.
}
Alguma ideia sobre o que está errado?
Responder1
Você está redirecionando para $server_name
, que está www.mysite.info
no segundo server
bloco - então tudo o que está fazendo é redirecionar para HTTPS, não alterar o host.
rewrite ^ https://mysite.info$request_uri? permanent;
Isso cuidará da mudança no host, bem como da mudança para HTTPS.
Se você quisesse que o redirecionamento fosse independente de protocolo, uma abordagem melhor seria:
rewrite ^ $scheme://mysite.info$request_uri? permanent;
Nas versões recentes do nginx, isso também funciona (e deve ser um pouco mais rápido):
return 301 $scheme://mysite.info$request_uri;