Hi Tom,
sorry, da habe ich dich missverstanden.
Wenn nun dort am vorgegebenen Ort kein Verzeichnis /home/*/public_html/ gefunden wird, wird versucht, die Ressource im Verzeichnis /<document_root>/~user/ zu finden. So war es zumindest auf allen Servern, zu deren Konfiguration ich bisher Zugriff hatte.
es kommt darauf an, welcher Wert der UserDir-Direktive gegeben wurde. Wird ihr ein absolutes Verzeichnis mitgegeben, erkennbar am führenden Slash, also z.B.
UserDir /foo
dann würde eine Anfrage für http://example.com/~bar/baz.html auf /foo/bar/baz.html verweisen. Existiert das Verzeichnis nicht, liefert der Apache einen 404. Mit der Angabe
UserDir foo
dagegen wird zuerst in der /etc/passwd nach dem Home-Verzeichnis des Benutzers "bar" gesucht und im Erfolg auf die Datei ~bar/foo/baz.html verwiesen, also /home/bar/foo/baz.html, falls /home/bar das Home-Verzeichnis von bar ist. Falls der Benutzer nicht existiert, bleibt der Request von mod_userdir unverändert und wird wie jeder andere behandelt, i.d.R. also auf /~bar/baz.html unterhalb des DocumentRoot von example.com verweisen.
Hier ist es ja auch so, dass das Verzeichnis publöic_html angeblich fest eincompiliert ist. Das war, soweit ich mich erinnere, auf meinem eigenen Testserver NICHT so. Da habe ich diese Verzeichnisse nämlich teilweise in "www" umbenannt, ohne Probleme. Leider kann ich da im Moment nicht nachgucken.
hiermit ist nicht mod_userdir gemeint, sondern suEXEC. Dem ist nämlich der Name des Verzeichnisses, in dem Scripte ausgeführt werden dürfen, fest einkompiliert. Würde man nun den Namen des Verzeichnisses von mod_userdir ändern, würde von suEXEC das Ausführen von Scripten in diesem Verzeichnis verboten.
Der Rest vom Satz sollte bestimnt heißen, dass ich gleich aufhören musste, mir Gedanken über Server zu machen und wieder an meiner Gesundheit arbeiten musste...
dabei wünsche ich dir viel Erfolg!
Gruß,
Andreas.