Nginx Redirect von non-WWW auf WWW

Oft hat man ja das Bedürfnis, seine Website unter der „www.“ Subdomain laufen zu lassen. Oder eben auch ohne „www.“. Oder auch man hat mehrere Domains zu seiner Präsenz und will immer die Hauptdomain angezeigt haben. So kann man dann auch dem Problem des „duplicated Contents“ bei Google beseitigen. Da man dann ja seinen Content nur noch unter einen Domain betreibt.

Mit Nginx kann man das in folgender Weise realisieren:

Immer WWW:

if ($host != ‚www.domain.de‘ ) {
rewrite ^/(.*)$ http://www.domain.de/$1 permanent;
}

Ohne WWW:

if ($host != ‚domain.de‘ ) {
rewrite ^/(.*)$ http://domain.de/$1 permanent;
}

Falls man aber noch mehrere Subdomains unterhalb seiner Domain fährt, sollte man dies etwas anders gestalten:

if ($host = ‚www.domain.de‘ ) {
rewrite ^/(.*)$ http://domain.de/$1 permanent;
}