nginx: remove string em $ host

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

No exemplo acima, se alguém fizer uma solicitação para www.jaja.com.another.com , o nginx procurará no diretório /var/www/html/www.jaja.com.another.com

Isso é o que preciso: se alguém fizer uma solicitação para www.jaja.com.another.com , quero que o nginx procure no diretório /var/www/html/www.jaja.com

Em outras palavras, o $host é www.jaja.com.another.com . Preciso remover .another.com no $host

A substituição da sequência de caracteres Nginx é nova para mim

    
por apasajja 16.05.2012 / 10:32

2 respostas

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

Com base em esta resposta :

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

}
    
por 16.05.2012 / 11:09

Tags