Wie erhalte ich mod_rewrite in meinem Home-Verzeichnis zu arbeiten?
Frage
ich meine PHP-Dateien unter FreeBSD unter diesem Verzeichnis abgelegt haben:
/home/david/public_html/code/php
In meinem Browser, ich auf sie durch diese URL:
http://192.168.6.7/~david/code/php
Und ich habe eine .htaccess-Datei URLs neu schreiben:
RewriteEngine on
RewriteRule ^test test.php
Aber wenn ich an http://192.168.6.7/~david/code/ php / test in meinem Browser, bekomme ich diesen Fehler:
Not Found
The requested URL /home/david/public_html/code/php/test.php
Wie Sie sehen können, die Rewrite-Regel bei dem Versuch erfolgreich ist Test zu test.php zu umleiten. Aber aus irgendeinem Grund fehlschlägt.
Das fand ich in meiner Apache-Fehlerprotokolldatei:
File does not exist: /usr/local/www/data/home
Wer weiß, wie dieses Problem beheben? By the way, wenn ich das in einem Web-Verzeichnis abgelegt und nicht mein Home-Verzeichnis, funktioniert alles einwandfrei.
Lösung
Stellen Sie die Basis-URL-Pfad /~david/code/php/
mit RewriteBase
:
RewriteBase /~david/code/php/
Sie sollten auch deutlich machen, setzen UseDir
public_html
. Siehe auch Per-User-Web-Verzeichnisse in dem Apache-Handbuch .