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 :

[.htaccess] Intercaller un dossier


Sujet :

Apache

  1. #1
    Membre régulier Avatar de messier79
    Homme Profil pro
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Points : 70
    Points
    70
    Par défaut [.htaccess] Intercaller un dossier
    Bonjour

    Voila mon probleme : j'ai une URL generee par un CMS de facon incorrecte. Il manque un niveau d'arborescence :
    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.domaine.com/niveau_1/niveau_3/...
    Il manque le niveau 2.
    J'ai cherche dans le CMS, mais je n'ai pas pu trouver ce qui posait probleme (il s'emmele qq part au milieu d'une redirection...).
    J'ai donc voulu utiliser un .htaccess pour retablir le niveau_2.
    J'ai fait un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    RewriteEngine on
    RewriteCond %{REQUEST_URI} ^/niveau_1/(.*)
    RewriteRule ^/niveau_1/(.*)$ niveau_1/niveau_2/$1 [L]
    Mais, comme vous vous en doutez, cela n'a pas marche...

    Quelqu'un a-t-il une solution ?

    Merci

  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
    Ca ne marche pas car dans un .htaccess, le premier membre d'une RewriteRule ne peut commencer par / (si on excepte le ^). Il faut donc le retirer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^niveau_1/(.*)$ niveau_1/niveau_2/$1 [L]
    Sauf que si tu fais ça, ça ne marchera toujours pas, ça partira en boucle infinie.
    Il faut jouer sur la RewriteCond (qui, soit dit en passant, ne sert à rien pour le moment car elle vérifie la même chose que le premier membre de la RewriteRule, mais peu importe) pour dire de réécrire si niveau_2 n'existe pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^/niveau_1/niveau_2
    RewriteRule ^niveau_1/(.*)$ niveau_1/niveau_2/$1 [L]

  3. #3
    Membre régulier Avatar de messier79
    Homme Profil pro
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Points : 70
    Points
    70
    Par défaut
    Merci

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

Discussions similaires

  1. htaccess et sous-dossiers
    Par xunil2003 dans le forum Apache
    Réponses: 4
    Dernier message: 18/09/2009, 16h05
  2. Réponses: 6
    Dernier message: 29/06/2009, 12h53
  3. Réponses: 19
    Dernier message: 04/06/2009, 17h11
  4. Redirection par .htaccess dans le dossier www ou autre
    Par christian38160 dans le forum Apache
    Réponses: 1
    Dernier message: 05/02/2008, 20h45
  5. Réponses: 11
    Dernier message: 26/07/2007, 17h34

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