Solución 1:
Mejor usa return
en lugar de rewrite
, porque es más rápido
server {
listen 80;
server_name example.com;
return 301 http://www.example.com$request_uri;
server {
listen 80;
server_name www.example.com;
[...]
}
De esta forma, también enviamos al cliente un código de estado adecuado, para que solicite el dominio correcto en la próxima solicitud.
Solución 2:
Lo estás haciendo de la manera difícil. Esta es la manera fácil.
server {
listen 80;
server_name example.com;
rewrite ^(.*) http://www.example.com$1 permanent;
}
server {
listen 80;
server_name www.example.com;
#The rest of your configuration goes here#
}