Para forzar que nuestro dominio cargue directamente con las www y evitar algunos errores de «este dominio no esta redirigiendo correctamente» en el caso de wordpress y otros cms en los que en la configuración ponemos que cargue con www pero que aún así a veces deja acceder sin las www, en nginx basta con una redirección:
Con este código lo solucionamos:
Redirigir a WWW con NGINX
server { listen 80; server_name skamasle.com; return 301 http://www.skamasle.com$request_uri; }
Pero es importante tener dos directivas server, un ejemplo, una directiva normal puede ser:
server { listen *:80; server_name skamasle.com www.skamasle.com; root /var/www/web; index index.html index.htm....................... etc }
O sea en server_name definidos los dos dominios, así que tenemos que separar a una directiva aparte, skamasle.com en una sección server para hacer la redirección y www.skamasle.com en la directiva server principal si no, no funciona.
NOTA para versiones viejas de nginx se usaba rewrite:
server { server_name skamasle.com; rewrite ^(.*) http://www.skamasle.com$1 permanent; }
Usar rewrite es menos eficiente, aunque ya nadie usa versiones viejas de nginx y con el return no tendremos problemas en ninguna versión.
Quitar las WWW con nginx
server { server_name www.skamasle.com; return 301 $scheme://skamasle.com$request_uri; }