I'm using wildcard in server_name
. I want to redirect all subdomains of example.com
(configured as *.example.com) to foo.com
except xyz.example.com
I have configuration as follows
server {
listen 80;
server_name *.example.com;
location / {
proxy_pass http://$1.foo.com;
}
}
I don't want to change any request coming to xyz.example.com
You need at least two server blocks, and
nginx
will select the more specific server block to handle the request. See this document for details.You will need a server block for
xyz.example.com
such as:Then either a
default_server
or a wild card server, such as:Or: