Canonização de múltiplos domínios

Canonização de múltiplos domínios

Tenho dois domínios que gostaria de canonizar (remover www) e forçar para https.

Entãohttp://www.domain.io=>https://domínio.ioEhttp://www.domínio.ac=>https://domínio.ac

Pelo que vi funcionaria algo assim, mas não consigo descobrir como extrair o TLD

server_name domain.io domain.sh;
return 301 https://$server_name$request_uri;

Os domínios ativos têm a mesma palavra, portanto podem ser combinados como:

(domain)(\.ac|\.io)

Responder1

Eu sugiro que você aproveiteservidorblocos:

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;
}

Tal configuração poderia ser facilmente gerada a partir de um modelo com um gerenciador de configuração, conforme recomendado pelo criador do nginx, por motivos de desempenho/escalabilidade.


No entanto, como sugeriu Richard Smith, você também poderia usar expressões regulares nonome do servidordiretiva:

server {
    server_name ~^(?:www\.)?(?P<host_domain>.+)$;
    return 301 https://$host_domain$request_uri;
}

No entanto, eu pessoalmente não recomendaria tal forma e pressionaria pelo criador do nginx.

informação relacionada