2016-04-04 7 views
0

Ich habe einen Server, wo ich mehrere Domänennamen hosten. Abhängig vom Domainnamen möchte ich Dateien für ein entsprechendes Verzeichnis basierend auf diesem Domainnamen bereitstellen. Zum Beispiel:Serve Website-Stamm dynamisch basierend auf Domänenname

www.domainA.com dienen Dateien von /var/www/html/domainA.com

www.domainB.com dienen Dateien von /var/www/html/domainB.com

usw. Auf diese Weise muß ich meine Config-Datei nicht jedes Mal, wenn ich eine Website hinzufügen, bearbeiten. In Apache habe ich es wie folgt aus:

RewriteEngine on 
RewriteMap lowercase int:tolower 
RewriteCond ${lowercase:%{HTTP_HOST}} ^(www\.)?(.*)$ 
RewriteRule ^(.*) /var/www/html/%2/$1 

Wie kann ich die gleiche Sache in nginx tun?

+0

Solche Fragen sind besser auf serverfault.stackexchange.com gefragt. SO ist für Programmierfragen. – Rob

+0

Danke für den Tipp. Ich schließe das und poste dort drüben. – srchulo

Antwort

1

Erfassen Sie den Domänennamen aus der Variablen $host mit einer Karte außerhalb Ihres Serverblocks.

map $host $domain_name { 
    ~(?<domain>[^.]+\.[^.]+)$ $domain; 
} 

Dann die neuen $domain_name Variable auf Ihre Root-Anweisung hinzufügen. Beachten Sie, dass $host auf Kleinbuchstaben normalisiert ist, daher sollten Ihre Domänenverzeichnisse auch Kleinbuchstaben sein.

root /var/www/html/$domain_name; 

Stellen Sie sicher, dass Sie den Server als Standard eingerichtet haben.

Verwandte Themen