Apache: Verweisen Sie dynamische VirtualHost-Domänen und -Subdomänen auf verschiedene Ordner

Apache: Verweisen Sie dynamische VirtualHost-Domänen und -Subdomänen auf verschiedene Ordner

Derzeit habe ich 2 virtuelle Hosts:

<VirtualHost *:80>
 ServerName *.*.comp1.office1.lan
 VirtualDocumentRoot /var/www/%-4/%-5/
 UseCanonicalName Off
 <Directory /var/www/>
  Options Indexes FollowSymLinks -MultiViews
  AllowOverride All
  Order allow,deny
  allow from all
 </Directory>
</VirtualHost>

<VirtualHost *:80>
 ServerName *.comp1.office1.lan
 VirtualDocumentRoot /var/www/%-4/
 UseCanonicalName Off
 <Directory /var/www/>
  Options Indexes FollowSymLinks -MultiViews
  AllowOverride All
  Order allow,deny
  allow from all
 </Directory>
</VirtualHost>

Domänen wieordner.site.comp1.office1.lanlöst korrekt ( /var/www/site/folder/). Aber auf Anfragesite.comp1.office1.lanIch erhalte die Fehlermeldung 404.

Und Apache protokolliert diese Zeile:

[time...] [error] [client my.ip.there] File does not exist: /var/www/site/_

Wenn ich die Ladereihenfolge der VirtualHosts ändere (der zweite wird vor dem ersten geladen), dannsite.comp1.office1.lanfunktioniert Gott, aber das Problem mit 404 antworten geht anordner.site.comp1.office1.lan.

Antwort1

Normalerweise würden Sie im ServerName-Eintrag für einen virtuellen Host keine Platzhalter verwenden, sondern diese stattdessen in eine ServerAlias-Direktive einfügen. Versuchen Sie es zum Beispiel mit

ServerName comp1.office.lan
ServerAlias *.*.comp1.office.lan
...

Möglicherweise müssen Sie die Servernamen so konfigurieren, dass sie alle unterschiedlich sind und die virtuellen Hostnamen mit den Serveralias übereinstimmen.

verwandte Informationen