Redirecting all subdomains to www in nginx with virtual hosting

June 17th, 2011
nginx, tech
If you look for how to redirect to 'www.example.com', you see people writing something where you have to know the hostname, or you have to know all subdomains. What if we need to be much more general, because this server hosts multiple domains, someone might come in on arbitrary subdomain, and we want all requests to go to 'www.REQUESTED_DOMAIN.com'? I came up with the following (it goes in the 'server' block'):
        server_name   ~^(?<subdomains>.+\.)?(?<domain>[^.]+\.[^.]+)$;

        if ($subdomains != www.) {
          rewrite  ^/(.*)$  http://www.$domain/$1  permanent;
        }
  
This will do:
  • www.example.com: no change
  • example.com: www.example.com
  • mail.example.com -> www.example.com
  • mail.example2.com -> www.example2.com
  • foo.bar.baz.example.com -> www.examplecom
Note that it assumes only one level of tld. So if your site is '.co.uk' or something, it will redirect all requests to 'www.co.uk', which is unlikely to be what you want.

Comment via: substack

Recent posts on blogs I like:

Linkpost for March

Effective Altruism

via Thing of Things March 2, 2026

The Newest Technology in Frozen

There are lots of different things in Frozen that are new-ish, but my dad and I were wondering: what is the actual newest thing in Frozen? This led me to watch Frozen a lot while taking notes. Some of the things I found included: Elastic hair-ties A safety …

via Lily Wise's Blog Posts March 1, 2026

2025-26 New Year review

This is an annual post reviewing the last year and setting intentions for next year. I look over different life areas (work, health, parenting, effectiveness, etc) and analyze my life tracking data. Highlights include a minimal group house, the usefulness…

via Victoria Krakovna January 19, 2026

more     (via openring)