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 avec plusieurs paramètres


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2011
    Messages : 9
    Par défaut URL rewriting avec plusieurs paramètres
    Bonjour à tous,

    Voila mon soucis. Je voudrais utiliser l'url rewriting dans mon site de maniere a ce que mes url donne ceci :

    http://www.mon-site.fr/accueil
    http://www.mon-site.fr/accueil/presentation

    avec a la base ceci :
    index.php?c=accueil
    index.php?c=accueil&var=presentation

    Notez que je voudrais que les paramètres soit séparer par un "/"

    Voici mon fichier htaccess :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    RewriteEngine On
     
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !-f
     
      RewriteRule (.*) index.php?c=$1 [L]
    Jusque la tous marche bien mais j'ai un soucis a trouver la syntaxe pour passer un deuxième paramètre (ex: presentation)

    J'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule (.*)\/(.*) index.php?c=$1&var=$2 [L]
    Mais visiblement je n'ai pas compris le fonctionnement de l'url rewriting car ca ne marche pas ... Quelqu'un pourrait m'aider?

  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
    Par défaut
    Il faut enlever le \ devant le / mais surtout il faut mettre la règle avec le / en tout premier dans ton .htaccess car le .* de la première règle matche toutes les URL du site, y compris celle avec un /.

  3. #3
    Membre averti
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2011
    Messages : 9
    Par défaut
    Merci pour ta réponse Mac.
    Effectivement ça parait évident de mettre la deuxième règle en premier.

    Par contre ça ne marche toujours pas.
    Quand je rentre l'url http://www.mon-site.fr/accueil/presentation
    et que je fait un echo des variables "c" et "var"
    j'ai "c = index.php" (ça aurait dû me mettre "accueil") et "var" n'existe tout simplement pas.

    De plus mes fichiers images, css, js etc... ne sont plus détecter. Voici un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Resource interpreted as Image but transferred with MIME type text/html: "http://localhost/mon-site/accueil/template/images/logo.png".
    On vois que le parametre accueil s'est glissé dans l'url.

    D'où cela peut-il venir?

    Voici mon fichier .htaccess :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    RewriteEngine On
     
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
     
    RewriteRule (.*)/(.*) index.php?c=$1&var=$2 [L]
    RewriteRule (.*) index.php?c=$1 [L]
    ps : Et du coup la redirection avec la règle "RewriteRule (.*) index.php?c=$1 [L]" ne marche plus.

  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
    Par défaut
    Citation Envoyé par nano855 Voir le message
    Quand je rentre l'url http://www.mon-site.fr/accueil/presentation
    et que je fait un echo des variables "c" et "var"
    j'ai "c = index.php" (ça aurait dû me mettre "accueil") et "var" n'existe tout simplement pas.

    De plus mes fichiers images, css, js etc... ne sont plus détecter.
    C'est logique, toujours à cause du .* qui matche tout. Il faut tout simplement dupliquer avant tes RewriteRule les conditions pour n'activer la réécriture que si le fichier demandé n'existe pas. Les RewriteCond ne sont pas factorisables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    RewriteEngine On
     
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule (.*)/(.*) index.php?c=$1&var=$2 [L]
     
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule (.*) index.php?c=$1 [L]

  5. #5
    Membre averti
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2011
    Messages : 9
    Par défaut
    Merci mac
    Ca marche super

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

Discussions similaires

  1. URL rewriting avec paramètres optionnels
    Par JayZon12 dans le forum Apache
    Réponses: 2
    Dernier message: 18/11/2014, 17h00
  2. url rewriting avec plusieur .htaccess
    Par peckhouse dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 27/10/2009, 10h20
  3. [Struts 1.1][html:link] avec plusieurs paramètres
    Par bbo1991 dans le forum Struts 1
    Réponses: 3
    Dernier message: 21/03/2007, 12h32
  4. [URLRewriting] URL Rewrite avec Language
    Par Prosis dans le forum Apache
    Réponses: 15
    Dernier message: 28/02/2007, 19h28
  5. [Struts] Html:link avec plusieurs paramètres
    Par mariemor64 dans le forum Struts 1
    Réponses: 2
    Dernier message: 24/05/2006, 14h27

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