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:
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
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>
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 RewriteCond %{REQUEST_FILENAME} -f RewriteCond %{REQUEST_URI} \.css$ RewriteRule ^(.+)$ /css/scaffold/index.php?f=%{REQUEST_URI}&%{QUERY_STRING} [L]
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
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>
Ma question est donc, est-ce que je peux utiliser mon htaccess pour router hors du document root ?
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.
Merci d'avance pour votre aide et bonne semaine.
Partager