mod_rewrite: Problem mit UserVerzeichnissen

lionel

New Member
Hallo Forum!
Durch die Suche bin ich auf diesen Thread gestoßen, in dem eine ähnliche Problematik besprochen wird:
Leider hat mir das aber immernoch nicht weitergeholfen, daher hier mein Problem:

Jeder User auf meinem Server hat ja sein eigenes Home-Verzeichnis im Stil von /home/username. Dort ist auch das Verzeichnis public_html, in welchem die vom Apache zu hostenden Webseiten liegen.
Die sind dann ja bekanntermaßen über die url http://mein-server/~username/webseite.html erreichbar sind.

Nun bekomme ich aber das mod_rewrite nicht mit diesen Userverzeichnissen zum laufen.

Hier der Inhalt der .htaccess, die ich zum Testen erstellt hatte:
Code:
RewriteEngine On
RewriteBase /
RewriteRule ^test.html$ index.html [PT]

Mein Problem ist jetzt, dass der Apache die index.html aber im falschen Verzeichnis sucht: Anstatt im public_html-Verzeichnisses des Userdirs sucht er nach /var/www/index.html (auf meinem Debian-System) bzw nach /srv/www/htdocs (auf meinem Suse-Rechner)

Denentsprechend erscheint gleichzeitig in der /var/log/apache2/error.log der Eintrag:
Code:
File does not exist: /var/www/index.html

Hat von Euch jemand eine Ahnung, wie ich das Problem beheben könnte?

Viele Grüße und Danke schonmal für jede Hilfe,
Lionel
 
RewriteRule ^test.html$ index.html [PT]
Die RewriteRules nutzen immer (!) absolute Pfade. Hier ist nichts relativ.
Wenn Du also auf ~username/index.html verweisen willst, mußt Du dies auch so hinschreiben. Egal in welchem Unterverzeichnis die .htaccess liegt.

huschi.
 
Vielen Dank für Deine Hilfe.
Leider bin ich damit auch nicht weitergekommen. Sämtliche Pfadangaben, die vor der html-Datei stehen, werden ignoriert, zu sehen an der error.log, die wieder die gleiche Meldung anzeigt:

Code:
File does not exist: /var/www/index.html

Ich hatte dann noch die Option "Options FollowSymLinks" aktiviert - danach bekam ich einen internal Server error und in der error.log stand dann
Code:
/home/user/public_html/.htaccess: Options not allowed here

Hättest Du vielleicht noch eine Idee?
 
Code:
RewriteEngine On
RewriteBase /
RewriteRule ^test.html$ index.html [PT]

Probier mal

Code:
RewriteRule ^/(~[^\/])/test.html$ /$1/index.html [PT]

Das ganze ist ein regulärer Ausdruck, mit dem du den Usernamen einfach in die Ziel-URL übernimmst.
 
Back
Top