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