mein problem ist allerdings, dass er mir den document root nicht richtig konfiguriert. er lautet immer /var/www/htdocs (wie ganz unten über DocumentRoot definiert) obwohl er ja eigentlich jeweils so lauten sollte wie in der map-file.
kurze info noch: ich habe zendcore standardmäßig installiert und in der httpd.conf per include meine vhost.conf (siehe unten) eingebunden. per directory definiere ich einen separaten bereich in meinem home-directory für projekte, die ich lokal auf meinem laptop entwickel. das funktioniert alles recht gut, nur der documentroot ist für die dynamisch konfigurierten vhosts falsch.
hier mein script, mit meinen pfaden (documentroot lautet also fälschlicherweise für jeden vhost immer /home/user1/projects/_sites)
Code: Select all
### etc/hosts
127.0.0.10 kunde1.localhost.de
### map-file
kunde1.localhost.de /home/user1/projects/_sites/kunde1.localhost.de/htdocs
### vhost.conf
<VirtualHost _default_:80>
<Directory "/home/user1/projects/_sites">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
RewriteEngine on
RewriteMap lowercase int:tolower
# die mapping-Datei definieren
RewriteMap vhost txt:/home/user1/apache-conf/vhost.map
# die Standard Alias-Definitionen beruecksichtigen
RewriteCond %{REQUEST_URI} !^/icons/
RewriteCond %{REQUEST_URI} !^/cgi-bin/
# Die Umleitung auf das Webmail-Portal
RewriteCond ${lowercase:%{SERVER_NAME}} ^mail.(.+..+)$
RewriteRule ^/(.*)$ /horde/$1 [L]
# Lookup in der vhost.map, Test ob das Verzeichnis existiert und
# Umschreiben des Requests auf das korrekte Verzeichnis
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteCond %1 -d
RewriteRule ^/(.*)$ %1/$1 [L]
# Fallback
RewriteCond ${lowercase:%{SERVER_NAME}} ^www.(.+..+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteCond %1 -d
RewriteRule ^/(.*)$ %1/$1 [L]
# Aufrufe aus dem CGI-Verzeichnis korrekt umschreiben
# und den korrekten Header zurückliefern
RewriteCond %{REQUEST_URI} ^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/cgi-bin/$1 [T=application/x-httpd-cgi,L]
# default fallback -- wenn nichts trifft dann die Standard-Seite zeigen
DocumentRoot /home/user1/projects/_sites
</VirtualHost>
statt localhost.de verwende ich eine andere fiktive domain - daran lags nicht.
ich verwende ubuntu v8 mit zendcore