Comment puis-je obtenir mod_rewrite travailler dans mon répertoire?
Question
J'ai mes fichiers PHP stockés sous FreeBSD dans ce répertoire:
/home/david/public_html/code/php
Dans mon navigateur, je les accès à travers cette URL:
http://192.168.6.7/~david/code/php
Et j'ai un fichier htaccess pour réécrire les URL:
RewriteEngine on
RewriteRule ^test test.php
Mais quand je vais http://192.168.6.7/~david/code/ php / test dans mon navigateur, je reçois cette erreur:
Not Found
The requested URL /home/david/public_html/code/php/test.php
Comme vous pouvez le voir, la règle de réécriture réussit à tenter de rediriger test test.php. Mais pour une raison quelconque, il échoue.
J'ai trouvé dans mon erreur apache fichier journal:
File does not exist: /usr/local/www/data/home
Quelqu'un sait comment résoudre ce problème? Soit dit en passant, si je mets cela dans un répertoire web et non mon répertoire personnel, tout fonctionne très bien.
La solution
Définissez le chemin d'URL de base à /~david/code/php/
avec RewriteBase
:
RewriteBase /~david/code/php/
Vous devez également préciser pour définir UseDir
public_html
. Voir aussi répertoires web par utilisateur dans le manuel Apache .