Назад | Перейти на главную страницу

nginx: удалить строку в $ host

server {
    server_name *.com.another.com;
    location / {
        root   /var/www/html/$host;
        index  index.html;
    }
}

В приведенном выше примере, если кто-то запросит www.jaja.com.another.com, nginx будет искать в каталоге /var/www/html/www.jaja.com.another.com

Вот что мне нужно: если кто-то сделает запрос www.jaja.com.another.com, Я хочу, чтобы nginx смотрел в каталог /var/www/html/www.jaja.com

Другими словами, $host является www.jaja.com.another.com. Мне нужно удалить .another.com в $host

Замена строк в Nginx для меня нова

server {
    server_name ~^(?<subdomain>.*)\.another\.com$;
    root /var/www/html/$subdomain;
    index index.html index.htm index.php;
    location ~ \.php$ { <...> }
}

На основе этот ответ:

map $host $directory {

    default www;
    ~*^(?P<subdomain>[a-z0-9\-\.]+)\.com\.another\.com$        $subdomain;
}

server {
    server_name *.com.another.com;

    location / {
        root   /var/www/html/$directory;
        index  index.html;
    }

}