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 :

Rewrite rules avec nombreux paramètres


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 54
    Par défaut Rewrite rules avec nombreux paramètres
    Bonjour

    je voudrais mettre en place des rewrite rules sur mon nouveau site.
    Le problème c'est que je peux avoir 5 paramètres mes URLs, et tous sont optionels

    Du coup la plus longue URL est de la forme
    /?id_ville=1&id_cat=10&filter_price=1&filter_site=1&sort=desc
    Je veux la transformer en /ville/1/cat/10/filter_price/1/filter_site/1/sort/desc

    Mais je peux très bien avoir juste
    /?id_ville=1

    Ou bien
    /?id_ville=1&filter_site=1

    Mon problème c'est que j'essaie de mettre manuellement dans le fichier htaccess toutes les possiblités, mais ca en fait beaucoup trop ! Du coup je pete un cable

    Comment créer une rewrite rule générique et qui prenne tous les cas de figure en compte ?

    Merci de votre réponse

  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
    A un détail près, tu auras ce que tu demandes ici.

  3. #3
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 54
    Par défaut
    Salut

    et merci pour ton aide

    J'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteRule ^(-.+)-([^-]+)-([^-&]*)([^-]*) home.php?$1&$2=$3$4 [N]
    RewriteRule ^([^-]+)-([^-]*)(.*) home.php?$1=$2$3 [L]
    Mais ca ne répond pas trop à mon besoin
    En effet cette URL fonctionne /id_ville-1/
    Mais cette URL ne fonctionne pas /id_ville-1/id_cat-45/

    Par ailleurs, je voudrais plutot avoir des urls du type
    /paris-1/sante-45/

    Désolé, je capte rien au regex....

    Merci par avance de ton aide

  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 chuckichucki Voir le message
    Par ailleurs, je voudrais plutot avoir des urls du type
    /paris-1/sante-45/
    Là, ça va pas être possible : comment Apache sait que "paris" est une ville est par "sante" ? Si tu restes sur le principe de la page que j'ai indiqué, pas de souci mais si tu veux des paramètres qui ont une signification particulière, il faut aider Apache à les identifier.

  5. #5
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 54
    Par défaut
    Okkkkk je comprends mieux !

    Bon j'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteRule ^(.+)/([^/]+)-([^/]+)/?$ /home.php?$1?$2=$3 [QSA,L]
    RewriteRule ^([^/]+)-([^/]+)$ /home.php?$1=$2 [QSA,L]
    Mais quand je vais sur http://www.monsite.com/id_ville_sele...cat_selected-3 mais ca ne fonctionne pas, il reste sur la page d'accueil sans prendre en compte les parametres que je lui ai donné.

    Par ailleurs, je voudrais tout de même avoir des URLs plus jolies et donc avoir un truc du genre

    http://www.monsite.com/v-paris-1/c-s...treparametre-5

    Sachant que "v" "c" "price" "autreparametre" seraient du contenu statique dans l'url, suivi de la valeur du paramètre. Tous ces paramètres sont optionnels.

    Désolé je suis nul en rewriting, un petit peu d'aide serait la bienvenue

    Merci

  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
    Par défaut
    C'est pas si compliqué que ça, faut juste prendre en compte les séparateurs un par un et gérer le cas de base de la récurrence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    RewriteRule ^$ /home.php [QSA,L]
    RewriteRule ^v-.+-([0-9]+)(.*)$ /$2?id_ville=$1 [QSA,L]
    RewriteRule ^c-.+-([0-9]+)(.*)$ /$2?id_cat=$1 [QSA,L]
    RewriteRule ^price-.+-([0-9]+)(.*)$ /$2?filter_price=$1 [QSA,L]
    ...

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

Discussions similaires

  1. Rewrite Rule avec adresse email
    Par Pierrick81 dans le forum Apache
    Réponses: 4
    Dernier message: 09/08/2011, 12h35
  2. Probleme avec Rewrite rule
    Par pierrot10 dans le forum Apache
    Réponses: 1
    Dernier message: 04/08/2011, 23h46
  3. Réponses: 1
    Dernier message: 23/06/2009, 19h35
  4. Url rewriting & redirection avec paramètres
    Par dom_bxl dans le forum Apache
    Réponses: 1
    Dernier message: 07/04/2009, 12h17
  5. [URL Rewriting] Problème avec un paramètre
    Par antitrust56 dans le forum Apache
    Réponses: 11
    Dernier message: 07/11/2007, 18h40

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