Come faccio ad avere mod_rewrite a lavorare nella mia home directory?
Domanda
Ho i miei file PHP immagazzinato sotto FreeBSD in questa directory:
/home/david/public_html/code/php
Nel mio browser, li accede tramite questo URL:
http://192.168.6.7/~david/code/php
E ho un file .htaccess per riscrivere gli URL:
RewriteEngine on
RewriteRule ^test test.php
Ma quando vado a http://192.168.6.7/~david/code/ php / test nel mio browser, ottengo questo errore:
Not Found
The requested URL /home/david/public_html/code/php/test.php
Come si può vedere, la regola di riscrittura è successo nel tentativo di reindirizzare test per test.php. Ma per qualche ragione non riesce.
Ho trovato questo nel mio file di log degli errori apache:
File does not exist: /usr/local/www/data/home
Qualcuno sa come risolvere questo problema? A proposito, se ho messo questo in una directory web e non la mia home directory, tutto funziona bene.
Soluzione
Impostare il percorso URL di base per /~david/code/php/
con RewriteBase
:
RewriteBase /~david/code/php/
Si dovrebbe anche mettere in chiaro per impostare UseDir
per public_html
. Vedi anche per utente web directory nel manuale di Apache .