Linux

Редирект с субдомена на каталог Nginx

Если вам необходимо сделать множественный редирект, с поддомена на каталог Nginx. Например так:

www.sub1.domain.com => https://domain.com/product/sub1

Можно отредактировать конфигурационный файл Nginx. Следующая конструкция позволяет решить проблему множественного редиректа:


if ($host = 'www.sub1.domain.com' ) {
    rewrite ^/(.*)$ https://domain.com/product/sub1 permanent;
}
  • $host – это значение хоста в заголовке запроса без номера порта.
  • rewrite – это директива правила перезаписи для изменения всего или части URL запроса.

Выглядит довольно просто и понятно. Ниже представлена полная конфигурация Nginx файла:

server {
    listen 10.0.0.4:443 http2;
    server_name domain.com *.domain.com;
    root /home/domain/web/domain.com/public_html;
 
    index index.php index.html index.htm;
    access_log /var/log/nginx/domains/domain.com.log combined;
    access_log /var/log/nginx/domains/domain.com.bytes bytes;
    error_log /var/log/nginx/domains/domain.com.error.log error;

    ssl on;
    ssl_certificate /home/domain/conf/web/ssl.domain.com.pem;
    ssl_certificate_key /home/domain/conf/web/ssl.domain.com.key;

    if ($host = 'www.sub1.domain.com' ) {
        rewrite ^/(.*)$ https://domain.com/product/sub1 permanent;
    }
    if ($host = 'www.sub2.domain.com' ) {
        rewrite ^/(.*)$ https://domain.com/product/sub2 permanent;
    }
....
}
To top