ich sitze gerade über einem ganz seltsamen Problem: wird auf einem System mit mehreren vHosts ein Unterverzeichnis eines vHosts aufgerufen, das zufällig genauso heißt wie ein anderer vHost, so wird stattdessen das falsche vHost-Verzeichnis ausgegeben.
System: vServer mit Debian Lenny, Apache 2.2.9 (dazu noch PHP 5.2.6 etc.), Plesk 9.3.0. Name-based virtual Hosts, an Plesk keine Änderungen vorgenommen.
Aktuell sind 4 vHosts angelegt, das Problem taucht aber schon mit nur zwei auf. Geht auch mit nur einfachen html-Seiten, also kein mod_rewrite, keine PHP-Tricks, nichts.
- zwei Domains als getrennte vHosts angelegt, z.B. domain1.de und domain2.de
- funktionieren erstmal ganz normal
- lege ich nun z.B. in Domain2 ein Unterverzeichnis /domain1 an (einfach als FTP) und pack da ein paar Dateien rein, und rufe die dann im Browser auf (z.B. http://www.domain2.de/domain1/index.htm), so werden nicht die in dem neuen Verzeichnis befindlichen Daten ausgeliefert, sondern das Wurzelverzeichnis von domain1.de. Das funktioniert ggf. sogar ohne daß dieses Verzeichnis angelegt wird.
Das dürfte doch absolut nicht sein! Vor allem: wie kommt der vHost dazu, Dokumente aus einem anderen DocumentRoot auszuliefern?
Ich bin da momentan ziemlich ratlos, und wäre für jede Hilfe dankbar. Logs und confs poste ich natürlich auch gern, wenn gewünscht.
Als Startpunkt mal der wichtigste Teil der conf einer der Domains (also ohne den Plesk-eigenen Log-Quatsch, Skripting etc.):
- Code: Select all
<VirtualHost 123.456.78.90:80>
ServerName domain1.de:80
ServerAlias www.domain1.de
UseCanonicalName Off
SuexecUserGroup domain1-ftp psacln
ServerAdmin "admin@domain1.de"
DocumentRoot /var/www/vhosts/domain1.de/httpdocs
<Directory /var/www/vhosts/domain1.de/httpdocs>
Options -Includes +ExecCGI
</Directory>
</VirtualHost>
Wie man sieht, hatte ich aus Verzweiflung auch schon einiges ausprobiert wie CanonicalName etc. - aber ohne Erfolg und wieder auf den Default (Off) zurückgestellt.
Schon im Voraus danke für Antworten.
Gruß, icke