Redirect nginx config server_name an, um benutzerdefinierte 404-Fehler-Seite

Ich bin neu in nginx configs und haben viel Zeit damit verbracht, zu googeln, so weit. Ich bin versuchen, um eine sehr grundlegende nginx-config-Datei verwendet werden, die in einer "redirect" - server.

Benutzer werden benötigt, um zu zeigen nackt domains (example.com), die durch A-record auf meine redirect-server-IP-Adresse, und das 'www' Datensatz per CNAME auf einen anderen server.

Den Zweck der redirect-server ist, führen Sie dann eine 301-Weiterleitung alle/Platzhalter nackt Domänen wieder in die 'www' - version der domain, so dass es sein kann, richtig behandelt, von meinem anderen server.

Aber ich möchte auch fangen die falsch konfiguriert 'www' - Domänen, die auf meine server-IP per A-record und einfach direkt zu einer benutzerdefinierten Fehlerseite auf der redirect-server mit weiteren Anweisungen, wie Sie Ihren account richtig für meinen Dienst.

Hier ist, was ich habe. Es funktioniert, aber da ich neu bin und zum schreiben von configs ich Frage mich, ob es gibt ein besserer Weg zu behandeln, dass die Umleitung die benutzerdefinierte Fehlerseite in der ersten server block. TIA!

#redirect to error page if begins with 'www.'

server {
    listen 80;
    server_name ~^www.; #only matches if starts with 'www.'. Is this good enough?
    rewrite ^(.*)$ /404.html; #is this the correct way to direct to a custom error page?

    error_page 404 /404.html;

    location  = /404.html {
        root /usr/share/nginx/html;
       }
    }

#no match, so redirect to www.example.com

server {
    listen 80 default_server;
    rewrite ^(.*)$ $scheme://www.$host$1 permanent;
}
InformationsquelleAutor bryanus | 2014-04-16
Schreibe einen Kommentar