Bonjour,
Je travaille sur un projet dont les sources sont à l’extérieur du document root d'apache (dans mon workspace Eclipse).
J'ai donc créé des alias pour pouvoir les tester sur mon environement local, jusque là tout va bien.
ça se corse quand je tente d'utiliser la réécriture d'URL, je dois utiliser la directive RewriteBase en spécifiant le nom de l'alias pour que ça fonctionne, or je ne veux pas mettre cette règle dans le .htaccess du projet (ça me gonfle de devoir l'enlever à chaque fois que je dois faire un commit) car cela ne concerne que ma conf locale et ne dois pas être présent dans le repos du projet.
Bref, mon alias est de la forme:
Mes .htaccess:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Alias /projet "H:/Workspace/projet/www" <Directory "H:/Workspace/projet/www"> Options Indexes FollowSymLinks MultiViews AllowOverride all Order Deny,Allow Deny from all Allow from 127.0.0.1 </Directory>
H:/Workspace/projet/www/.htaccess
H:/Workspace/projet/www/application/.htaccess
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ application/webroot/ [L] RewriteRule (.*) application/webroot/$1 [L] </IfModule> php_flag short_open_tag 1 php_flag file_uploads 1 php_value upload_max_filesize 10M php_value post_max_size 10M
H:/Workspace/projet/www/application/webroot/.htaccess
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ webroot/ [L] RewriteRule (.*) webroot/$1 [L] </IfModule>
Si je mets la directive RewriteBase dans les 3 projets, tout va bien et je peux utiliser mon alias naturellement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !favicon.ico$ RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] </IfModule>
Si j'essaie de mettre la directive RewriteBase dans la directive <Directory> (pourtant possible d'après la doc), j'obtiens une belle erreur 404 (URL /Workspace/project/www/application/webroot/ was not found).
Quelle est la solution à ce problème ?
Partager