Canonicalización de múltiples dominios

Canonicalización de múltiples dominios

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.

información relacionada