URL rewriting pour accéder à des fichiers hors du document root
Bonjour à tous,
Je suis en train de jouer avec symfony (le framework PHP) et tout l'architecture des fichiers est hors du document root par mesure de sécurité. J'utilise également le framework css Scaffold qui permet de faire du parsing sur le css. Seulement j'ai quelques problèmes pour faire marcher mon htaccess qui route tous mes fichiers css vers Scaffold.
Le fichier htaccess de symfony:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Options +FollowSymLinks +ExecCGI
<IfModule mod_rewrite.c>
RewriteEngine On
# uncomment the following line, if you are having trouble
# getting no_script_name to work
#RewriteBase /
# we skip all files with .something
#RewriteCond %{REQUEST_URI} \..+$
#RewriteCond %{REQUEST_URI} !\.html$
#RewriteRule .* - [L]
# we check if the .html version is here (caching)
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
# no, so we redirect to our front web controller
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule> |
Le htaccess que j'utilise habituellement pour Scaffold (quand tout est dans le document root):
Code:
1 2 3
| RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} \.css$
RewriteRule ^(.+)$ /css/scaffold/index.php?f=%{REQUEST_URI}&%{QUERY_STRING} [L] |
Ce que je fais (J'ai enlevé les lignes commentées de Sf pour rendre ca plus lisible):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| Options +FollowSymLinks +ExecCGI
<IfModule mod_rewrite.c>
RewriteEngine On
# scaffold routing for css
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} \.css$
RewriteRule ^(.+)$ ./lib/vendor/csscaffold/scaffold/index.php?f=%{REQUEST_URI}&%{QUERY_STRING} [L]
# we check if the .html version is here (caching)
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !.*(lib/vendor/csscaffold/scaffold/index\.php).*
# no, so we redirect to our front web controller
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule> |
En gros si c'est du css, je route vers scaffold (dans les vendors hors du document root). Ensuite je mets une condition pour pas que ma réécriture s'annule à la deuxième boucle. J'obtiens:
Code:
The requested URL /lib/vendor/csscaffold/scaffold/index.php was not found on this server.
Ma question est donc, est-ce que je peux utiliser mon htaccess pour router hors du document root ?
Merci d'avance pour votre aide et bonne semaine.