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] Flag Last non pris en compte


Sujet :

Apache

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 30
    Points : 18
    Points
    18
    Par défaut [URL Rewriting] Flag Last non pris en compte
    Bonjour,

    J'ai un fichier .htaccess tout simple qui contient uniquement ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteEngine On
     
    RewriteRule ^admin backend.php [QSA,L]
    RewriteRule ^(.*)$ index.php [QSA,L]
    Le problème, c'est que dans tous les cas, c'est le fichier index.php qui est utilisé, et non backend.php comme je le souhaiterais lorsque l'url entrée commence par admin. Je sais pourtant que cette ligne est bonne car quand je commente la dernière règle, c'est bien backend.php qui est utilisé. Et lorsque je commente les deux lignes, j'ai bien une erreur 404.

    Une idée ?

    Merci d'avance.

  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 778
    Points
    17 778
    Par défaut
    Le flag L(ast) ordonne simplement à Apache de s'arrêter à cette règle, si elle correspond au lieu de chercher une autre règle (comportement par défaut). backend.php, après réécriture ou non, est concernée par votre dernière règle. En effet, Apache reprend tout de zéro, même après avoir effectué une réécriture, avec l'URL courante, suite à une redirection, même interne, ou non donc.

    Vous devez probablement mettre en place une "exception".

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Tout d'abord merci de cette réponse.

    La question qui me vient maintenant est « Comment placer une exception » ? J'ai un peu cherché, suis tombé sur RewriteCond mais n'arrive pas à l'exploiter comme il faudrait. Ce à quoi je ne parviens pas, c'est d'écrire cette « RewriteCond » avant la dernière règle pour dire que celle-ci doit être lue si l'URL ne commence pas par admin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    RewriteEngine On
     
    RewriteRule ^admin backend.php [QSA,L]
     
    RewriteCond %{REQUEST_URI} !^admin
    RewriteRule ^(.*)$ index.php [QSA,L]
    Mais bon, comme je l'ai dit, ça ne fonctionne pas.

    Merci pour l'aide apportée.

  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 778
    Points
    17 778
    Par défaut
    C'est sur backend.php qu'il faut mettre une exception alors.

    Et REQUEST_URI reprend le chemin HTTP. Si l'URL est http://www.mondomaine.fr/rep1/rep2/backend.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteCond %{REQUEST_URI} !=/rep1/rep2/backend.php

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Très bien, le problème est résolu. Tu m'as appris quelque chose concernant la relecture du fichier .htaccess, chose que j'ignorais.

    Encore une fois, merci.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 07/02/2011, 23h03
  2. Réponses: 2
    Dernier message: 01/02/2011, 13h38
  3. Réponses: 1
    Dernier message: 24/05/2010, 20h45
  4. [URL rewriting] CSS non pris en compte
    Par zyongh dans le forum Apache
    Réponses: 2
    Dernier message: 16/02/2009, 12h02
  5. [URL Rewriting] flag last [L] ne fonctionnant pas
    Par Yann_du_sud dans le forum Apache
    Réponses: 2
    Dernier message: 22/05/2008, 14h23

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