Сегодня довелось решить интересную задачу связанную с множественными редиректами. Необходимо было организовать редирект с поддомена в веб каталог на Nginx сервере. Задача выглядела следующим образом:
www.sub01.domain.com => https://domain.com/product/sub01
И что самое паршивое, таких поддоменов было много. Выйти с положения удалось с помощью следующей конструкции:
1 2 3 | if ($host = 'www.sub01.domain.com' ) { rewrite ^/(.*)$ https://domain.com/product/sub01 permanent; } |
Ниже, как это выглядело в рабочем конфиге:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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.sub01.domain.com' ) { rewrite ^/(.*)$ https://domain.com/product/sub01 permanent; } if ($host = 'www.sub02.domain.com' ) { rewrite ^/(.*)$ https://domain.com/product/sub02 permanent; } .... } |
Если у вас возникли какие-либо вопросы, пожалуйста, пишите в комментарии.