¿Cómo llego mod_rewrite para trabajar en mi directorio?
Pregunta
He guardado mis archivos PHP en FreeBSD en este directorio:
/home/david/public_html/code/php
En mi navegador, ellos a través de la siguiente URL:
http://192.168.6.7/~david/code/php
Y tengo un archivo .htaccess para reescribir URL:
RewriteEngine on
RewriteRule ^test test.php
Pero cuando voy a http://192.168.6.7/~david/code/ php / prueba en mi navegador, recibo este error:
Not Found
The requested URL /home/david/public_html/code/php/test.php
Como se puede ver, la regla de reescritura es un éxito en el intento de redirigir a prueba test.php. Pero por alguna razón falla.
He encontrado esto en mi archivo de registro de errores de Apache:
File does not exist: /usr/local/www/data/home
Alguien sabe cómo solucionar este problema? Por cierto, si pongo esto en un directorio web y no mi directorio personal, todo funciona bien.
Solución
Establecer la ruta URL base a /~david/code/php/
con RewriteBase
:
RewriteBase /~david/code/php/
También debe dejar claro a establecer UseDir
a public_html
. Ver también por usuario directorios web en el manual de Apache .