2013-03-16 13 views

Antwort

13

Das folgende Snippet macht dies in einer allgemeinen Weise, ohne hart Host-Namen Code (nützlich, wenn Ihre Server-Konfiguration behandelt Anfragen für mehrere Domains). Fügen Sie dies innerhalb jeder Serverdefinition hinzu, die Sie benötigen.

if ($http_host ~ "\.$"){ 
    rewrite ^(.*) $scheme://$host$1 permanent; 
} 

Dies nutzt die Tatsache, (hingewiesen durch Igor Sysoev) $host dass die nachlauf muss entfernt DOT, während $http_host nicht; So können wir den Punkt in $http_host übereinstimmen und automatisch $host für die Umleitung verwenden.

+0

Danke, arbeitete perfekt! – user2168809

+1

Verwende 'rewrite^(. *) $ Scheme: // $ host $ 1 permanent;' um das hartcodierte Schema loszuwerden. –

+0

Danke für den Vorschlag (und bearbeiten) @SlavaFominII - viel besser. –

0

Sie müssen Regex verwenden.

server { 
    listen  80; 
    server_name domain.com.WHATEVER, domain.com.WHATEVER-2, domain.com.WHATEVER-3; 
    rewrite^$scheme://domain.com$request_uri? permanent; 
} 

Von: http://wiki.nginx.org/HttpRewriteModule

Umleitung - gibt temporäre Umleitung mit Code 302; Es wird verwendet, wenn die Ersatzleitung beginnt mit http: // permanent - gibt permanente Weiterleitung mit Code 301