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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.