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] Exclure certains types de fichiers d'une règle de réécriture


Sujet :

Apache

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 43
    Points : 38
    Points
    38
    Par défaut [URL Rewriting] Exclure certains types de fichiers d'une règle de réécriture
    Bonjour,

    J'ai un VirtualHost à partir duquel tout est redirigé sur une même et seule page et sur un dossier précis.

    J'utilise pour ça :
    RewriteEngine on
    RewriteRule ^(.*)$ /dossier/index.php [L]

    C'est exactement ce que je cherche à faire seulement il y a tout de même un petit hic dans l'histoire : dans la page index.php il y a des images, des includes, différents appels vers d'autres fichiers qui n'aboutissent jamais du fait que les appels reconduisent systématiquement vers /dossier/index.php...bref c'est le serpent qui se mords la queue

    J'ai essayé de poser des conditions avec RewriteCond seulement je n'arrive à rien faute de connaitre la juste synthaxe...

    Merci.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Il faut en effet rajouter une règle type test (RewriteCond) sur une variable comme REQUEST_URI :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !\.(?:css|js)$
    RewriteRule .* /dossier/index.php [L]
    Les fichiers d'extension css et js ne feront ainsi pas l'objet d'une réécriture (à adapter à vos besoins).

    (non testé)

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 43
    Points : 38
    Points
    38
    Par défaut
    Merci julp pour la réponse,

    Apparemment c'est presque ça sauf que l'uri part en boucle : ça me donne request failed: URI too long (longer than 8190) au terme de la redirection vers un script cgi même en "collant" pratiquant toutes les extensions :

    RewriteCond %{REQUEST_URI} !\.(?:cgi|pl|exe|js|html|css|php)$

    Par contre si j'appelle mes fichiers avec un autre virtualhost, tout passe sans problème (donc logiquement les scripts "connexes" ne sont pas en cause).

    Pas si simple...

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    J'ai omis d'exclure votre "index", ce qui est à l'origine de cette boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !\.(?:cgi|pl|exe|js|html|css|php)$
    RewriteCond %{REQUEST_URI} !=/dossier/index.php # Le chemin HTTP complet vers le document où sont renvoyées toutes les requêtes
    RewriteRule .* /dossier/index.php [L]

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/02/2012, 12h29
  2. [VB6]N'afficher que certain type de fichier dans une FileListBox
    Par Misha dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 03/11/2008, 18h34
  3. Réponses: 12
    Dernier message: 22/02/2007, 15h26
  4. Réponses: 2
    Dernier message: 21/04/2005, 17h09
  5. Bloquer le téléchargement de certains types de fichiers
    Par Nikos dans le forum Développement
    Réponses: 4
    Dernier message: 23/12/2002, 20h54

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