Verzeichnisnamen der Platzhalter-Subdomain

7

Ich habe Folgendes in meiner Apache-Konfiguration:

<VirtualHost *:80>
  VirtualDocumentRoot /var/www/hosts/%0
  ServerAlias *.test.galapagos.office
</VirtualHost>

In / var / www / hosts habe ich ein Verzeichnis mit dem Namen jason.test.galapagos.office und eines mit dem Namen bill.test.galapagos.office. Wenn ich in einem Browser zu jason.test.galapagos.office gehe, bekomme ich das, was ich erwartet habe. Gleiches gilt für die Rechnung. Mit anderen Worten, alles funktioniert perfekt.

Ich bin jedoch nicht ganz zufrieden mit dem, was los ist. Anstelle von /var/www/hosts/jason.test.galapagos.office und /var/www/hosts/bill.test.galapagos.office/ möchte ich / home / jason / web und / home / bill / web .

Wie kann ich Apache anweisen, stattdessen diesen Unterverzeichnissen zuzuordnen?

Danke, Jason

Jason Swett
quelle

Antworten:

16

Versuche dies:

<VirtualHost *:80>
  #VirtualDocumentRoot /var/www/hosts/%0
  VirtualDocumentRoot /home/%1/web
  ServerAlias *.test.galapagos.office
</VirtualHost>

Ich glaube, das wird Anfragen an "jason.test.galapagos.office" an "/ home / jason / web" senden.

Die vollständige Liste der VirtualDocumentRoot-Anweisungen finden Sie hier:

http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html

0 der ganze Name
1 der erste Teil
2 der zweite Teil
-1 der letzte Teil
-2 der vorletzte Teil
2+ der zweite und alle nachfolgenden Teile
-2+ der vorletzte und alle vorhergehenden Teile
1+ und -1+ gleich 0
sysadmin1138
quelle
Genau danach habe ich gesucht. Die "% 1" war der Schlüsselteil. Vielen Dank.
Jason Swett
1

Könnte diese Änderung funktionieren?

VirtualDocumentRoot /home/%0/web

Oder Sie können mod_userdir aktivieren, wie es standardmäßig aussehen würde http://test.galapagos.office/~bill/

LatinSuD
quelle
Das würde mir nicht ganz das bringen, was ich will. Mit dieser Lösung müssten meine Verzeichnisse immer noch so aussehen: /home/jason.test.galapagos.office/web statt wie folgt: / home / jason / web.
Jason Swett