Nginx überschreibt die nicht www-Präfix-Domäne in die www-Präfix-Domäne

Sehe ich die Nginx HttpRewriteModule Dokumentation hat ein Beispiel zum umschreiben einer www-Präfix-domain auf eine nicht-www-domain vorangestellt:

if ($host ~* www\.(.*)) {
  set $host_without_www $1;
  rewrite ^(.*)$ http://$host_without_www$1 permanent; # $1 contains '/foo', not 'www.mydomain.com/foo'
}

Wie kann ich das reverse - -- - rewrite-eine nicht-www-domain vorangestellt, um eine www-Präfix-domain? Ich dachte, vielleicht könnte ich etwas tun, wie die folgenden, aber Nginx nicht wie die geschachtelte if-Anweisung.

if ($host !~* ^www\.) {                       # check if host doesn't start with www.
    if ($host ~* ([a-z0-9]+\.[a-z0-9]+)) {    # check host is of the form xxx.xxx (i.e. no subdomain)
        set $host_with_www www.$1;
        rewrite ^(.*)$ http://$host_with_www$1 permanent;
    }
}

Außerdem wollte ich, dass diese Arbeit für alle domain-Namen, ohne explizit zu sagen, Nginx umzuschreiben domain1.com -> www.domain1.com, domain2.com -> www.domain2.com usw. da habe ich eine große Anzahl von domains zu umschreiben.

InformationsquelleAutor der Frage saltycrane | 2009-10-27

Schreibe einen Kommentar