Канонизация множественных доменов

Канонизация множественных доменов

У меня есть два домена, которые я хотел бы канонизировать (удалить www) и принудительно перевести на https.

Такhttp://www.domain.io=>https://domain.ioИhttp://www.domain.ac=>https://domain.ac

Из того, что я видел, это должно работать примерно так, но я не могу найти, как извлечь TLD

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

Оба активных домена представляют собой одно и то же слово, поэтому их можно сопоставить следующим образом:

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

решение1

Я предлагаю вам использоватьсерверблоки:

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

Такую конфигурацию можно легко сгенерировать из шаблона с помощью менеджера конфигураций, как рекомендует создатель nginx из соображений производительности и масштабируемости.


Однако, как предположил Ричард Смит, вы также можете использовать регулярные выражения вимя серверадиректива:

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

Однако я бы лично не рекомендовал такой способ и рекомендовал бы использовать способ, предложенный создателем nginx.

Связанный контент