How to generically remove the www of the domain in nginx?
I have a server config in nginx which matches several domains:
server {
server_name example1.com example2.com example3.com;
# ...
}
And I would like to redirect the www versions to the corresponding domains. I know how to do it for a single domain with a redirect and I would know how to do the inverse thing but I can't find a way here.
Any idea ?
Thanks ! :)
Solution 1:
Don't use if
server {
server_name ~^(www\.)(?<domain>.+)$;
return 301 $scheme://$domain$request_uri;
}
That's all ...
Solution 2:
Ok I found this solution:
server {
server_name www.exemple1.com www.example2.com www.exemple3.com;
listen 80;
if ($http_host ~ "www\.(.*)") { #Note the extra "\" after the www
return 301 $scheme://$1$request_uri;
}
}
It works like a charm :)