IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

URL rewriting pour accéder à des fichiers hors du document root


Sujet :

Apache

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 52
    Points : 39
    Points
    39
    Par défaut 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 : 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.

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Non, pas possible. L'URL rewriting transforme une URL en une autre qui doit être valide : si tu ne peux pas construire une URL cible qui fonctionne, ça ne fonctionnera jamais.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 52
    Points : 39
    Points
    39
    Par défaut
    Dommage, je vais pas passer par le front controler alors.

    Merci pour ton aide Mac, tu es toujours là pour donner un coup de main et je t'en suis très reconnaissant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. URL rewriting pour des images
    Par walidEduc dans le forum Apache
    Réponses: 6
    Dernier message: 20/03/2013, 16h28
  2. Réponses: 6
    Dernier message: 12/12/2010, 01h12
  3. Réponses: 6
    Dernier message: 21/05/2010, 17h40
  4. Réponses: 13
    Dernier message: 16/09/2009, 18h32
  5. Accéder à des fichiers sur le serveur hors du context-root
    Par ptr83 dans le forum Développement Web en Java
    Réponses: 5
    Dernier message: 20/03/2009, 13h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo