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 :

Gérer l'accès à certains fichiers via un .htaccess


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 Gérer l'accès à certains fichiers via un .htaccess
    Bonjour,

    Je cherche à écrire un fichier htaccess pour :
    - Que mes requêtes de fichier css et png soient autorisées
    - Que mes requêtes de fichier css soient routées vers un fichier php
    - Que tout le reste soit routé vers le même fichier php

    Voila ce que j'ai fait. La première partie marche, à savoir que ca route mes fichiers css vers mon index.php pour être traités.

    Par contre quand j'ai rajouté la deuxième pour que tout ce qui n'est pas du css ou du png passe par le controller index.php, ca dérape : mon css n'est plus routé...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	RewriteCond	%{REQUEST_FILENAME}		-f
    	RewriteCond 	%{REQUEST_URI}			\.css$
    	RewriteRule 	^(.+)$ 				code/index.php?request=%{REQUEST_URI}&%{QUERY_STRING} [L]
     
     
    # No direct access to files in the scaffold directory except css and png files
     
    	RewriteCond 	%{REQUEST_FILENAME}		-f
    	RewriteCond 	%{REQUEST_FILENAME}		!\.(css|png)$
    	RewriteRule 	(.*)				code/index.php?direct_access=no [L]
    Merci d'avance pour votre aide.

  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
    Il faut que tu rajoutes une condition pour index.php dans la seconde règle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    # No direct access to files in the scaffold directory except css and png files
     
    	RewriteCond 	%{REQUEST_FILENAME}		-f
    	RewriteCond 	%{REQUEST_FILENAME}		!code/index\.php$
    	RewriteCond 	%{REQUEST_FILENAME}		!\.(css|png)$
    	RewriteRule 	(.*)				code/index.php?direct_access=no [L]

  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
    Merci pour ton aide précieuse (encore une fois ). Ca marche.

    Il y a juste une chose que je ne comprends pas. J'ai mis un flag [L] qui en fait la dernière règle normalement, est-ce la dernière règle sous la condition ?

    Dans ma logique, je me disais qu'un fichier css serait pris en compte par la première Rule et pas par la seconde.

    Alors que là il est pris en compte par la première que le modifie, ce qui fait qu'il est pris en compte par la deuxième. C'est bien ça ?

  4. #4
    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
    La réécriture d'URL est un processus itératif : Apache va exécuter plusieurs fois les règles jusqu'à aboutir à une URL qui n'est plus réécrite. Le [L] va bien empêcher d'exécuter les règles qui suivent mais juste pour la boucle de réécriture en cours. Après le [L], Apache reprend les règles avec la nouvelle URL et ainsi de suite jusqu'à convergence. S'il n'y a pas convergence, au bout d'un certain nombre de cycles, Apache lève une erreur.

  5. #5
    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
    Merci pour ton aide.

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 03/10/2007, 17h37
  2. gérer l'acces à des fichiers : read only / write ..
    Par ryoussef19 dans le forum Visual C++
    Réponses: 21
    Dernier message: 09/08/2007, 15h39
  3. gérer l'acces à des fichiers : read only
    Par ryoussef19 dans le forum C#
    Réponses: 19
    Dernier message: 05/07/2007, 13h30
  4. comment gérer l'accès à un fichier
    Par ryoussef19 dans le forum Visual C++
    Réponses: 1
    Dernier message: 20/06/2007, 13h41
  5. Limiter acces à un fichier via .htaccess
    Par Evadb dans le forum Apache
    Réponses: 2
    Dernier message: 25/05/2007, 10h50

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