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] Condition avec paramètre


Sujet :

Apache

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 9
    Points : 6
    Points
    6
    Par défaut [URL rewriting] Condition avec paramètre
    Bonjour,
    j'essaye de mettre en place pour la première fois de l'URL Rewriting est j'ai un petit soucis.
    Voici mon fichier .htaccess :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    # Options +FollowSymlinks
    RewriteEngine on
    RewriteRule ^contact\.html$   /index.php?id=$4 [L]
    Si je vais sur /index.php?id=4, tout s'affiche correctement.
    Si je vais sur /contact.html, ma page affiche ma bannière, mon menu et mon pied de page mais pas mon contenu.
    En fait j'ai un fichier content.inc.php qui m'affiche différent contenu en fonction du paramètre passer dans l'url :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if($_GET['id'] == 4)
    {
      echo'<div id="contenu"></div>';
    }
    j'ai essayé de changer la condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if($_SERVER['PHP_SELF'] == '/contact.html')
    {
      echo'<div id="contenu"></div>';
    }
    ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if($_SERVER['REQUEST_URI'] == '/contact.html')
    {
      echo'<div id="contenu"></div>';
    }
    mais cela ne fonctionne pas...
    Un coup de main serai le bien venu.
    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    je pense que tu n'as pas trop capté la redirection.

    exemple concret :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([a-zA-Z0-9-]*)\.html$ /index.php?page=$1 [L]
    le $1 représente t'as première variable. (Toi tu met $4 directement pensant que c'est la valeur de l'id passer en parametre)
    Dans mon exemple j'ai un paramètre page qui contient $1 (ex : contact, accueil...)
    Donc dans ce cas , "index.php?page=contact" marchera et aussi "contact.html".

    exemple avec 2 variables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([a-zA-Z0-9-]*), ([a-zA-Z0-9-]*)\.html$ /index.php?page=$1&id=$2 [L] etc...
    Dans ton exemple tu as une page contact avec un id = 4 d'après ce que j'ai compris, donc sa ressemblerai plutot à cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([a-zA-Z0-9-]*)-([0-9-]*)\.html$   /index.php?page=$1&id=$2 [L]
    Avec comme résultat index.php?page=contact&id=4 deviendra contact-4.html

    Bonne continuation
    Dernière modification par _Mac_ ; 19/05/2012 à 19h23. Motif: Merci de mettre en forme le message avec les balises adéquates ([CODE] pour la configuration et le code notamment)

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci bien.
    Cependant, cela ne résout pas mon problème d'affichage de contenu.

  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
    Il faut que tu nous donnes un peu plus de détails que ça si tu veux qu'on t'aide. Donc peux-tu donner le .htaccess complet et l'URL que tu utilises pour tester ?

    Si tu sais que contact.html doit toujours renvoyer vers id=4, pourquoi ne pas mettre cette règle "en dur" dans ton .htaccess ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^contact\.html$   /index.php?id=4 [L]

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    .htaccess
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    # Options +FollowSymlinks
    RewriteEngine on
    RewriteRule ^contact\.html$   /index.php?id=$4 [L]
    content.inc.php (index.php?id=4)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if($_GET['id'] == 4)
    {
      echo'<div id="contenu">
      <h2>Formulaire de contact</h2>
      ...
      </div>';
    }
    Le problème c'est que ma condition ne passe pas lorsque je vais sur "ardennes-et-meuse/contact.html". Mon div "contenu" ne s'affiche pas !!!
    Si par contre je vais sur "ardennes-et-meuse/index.php?id=4", mon div "contenu" s'affiche.

  6. #6
    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
    C'est comme disait boboash : il n'y a pas de groupe de parenthèses dans le premier membre de ta RewriteRule donc $4 ne risque pas d'être valorisé. Donc je répète :
    Citation Envoyé par _Mac_ Voir le message
    Si tu sais que contact.html doit toujours renvoyer vers id=4, pourquoi ne pas mettre cette règle "en dur" dans ton .htaccess ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^contact\.html$   /index.php?id=4 [L]

  7. #7
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Problème résolu...
    Merci.

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

Discussions similaires

  1. [URL rewriting] Condition avec existence de fichier
    Par Fullvisite dans le forum Apache
    Réponses: 3
    Dernier message: 29/05/2010, 21h17
  2. Url rewriting & redirection avec paramètres
    Par dom_bxl dans le forum Apache
    Réponses: 1
    Dernier message: 07/04/2009, 12h17
  3. [URL Rewriting] Problème avec un paramètre
    Par antitrust56 dans le forum Apache
    Réponses: 11
    Dernier message: 07/11/2007, 18h40
  4. Réponses: 3
    Dernier message: 31/07/2007, 16h40
  5. [URL Rewriting] problème avec sous domaine
    Par Booyakha dans le forum Apache
    Réponses: 1
    Dernier message: 31/07/2007, 16h31

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