
Tengo dos dominios que me gustaría canonicalizar (eliminar www) y forzar el acceso a https.
Entonceshttp://www.dominio.io=>https://dominio.ioYhttp://www.dominio.ac=>https://dominio.ac
Por lo que he visto, funcionaría así, pero no encuentro cómo extraer el TLD.
server_name domain.io domain.sh;
return 301 https://$server_name$request_uri;
Los dominios activos son ambos la misma palabra, por lo que podrían coincidir como:
(domain)(\.ac|\.io)
Respuesta1
Te sugiero que aprovechesservidorbloques:
server {
server_name www.domain.io;
return 301 https://domain.io$request_uri;
}
server {
server_name www.domain.sh;
return 301 https://domain.sh$request_uri;
}
Dicha configuración podría generarse fácilmente a partir de una plantilla con un administrador de configuración, como es la forma recomendada por el creador de nginx, por razones de rendimiento/escalabilidad.
Sin embargo, como sugirió Richard Smith, también puedes usar expresiones regulares en elnombre del servidordirectiva:
server {
server_name ~^(?:www\.)?(?P<host_domain>.+)$;
return 301 https://$host_domain$request_uri;
}
Sin embargo, personalmente no recomendaría esa forma ni presionaría por la del creador de nginx.