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] Choix d'un séparateur pour mes paramètres


Sujet :

Apache

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 13
    Points
    13
    Par défaut [URL Rewriting] Choix d'un séparateur pour mes paramètres
    Bonjour,

    Les urls de mon site sont du type monsite.com/catalogue.php?categorie=fleurs et monsite.com/catalogue.php?categorie=fleurs&produit=tulipes-rouges
    Grâce à ce .htaccess, j'arrive à réécrire comme suit : monsite.com/fleurs et monsite.com/fleurs,tulipes-rouges

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule ^([a-zA-Z0-9-]+)$ catalogue.php?categorie=$1 [L]
    RewriteRule ^([a-zA-Z0-9-]+),([a-zA-Z0-9-]+)$ catalogue.php?categorie=$1&produit=$2 [L]

    1ère question : Si je souhaite utiliser le tiret comme séparateur, la page ne s'affiche pas (page blanche)
    Je précise que j'ai bien modifié au préalable les liens de mon site (ex. : monsite.com/fleurs-tulipes-rouges). Pourquoi cela ne fonctionne-t-il pas, alors qu'avec un underscore ou une virgule (ce que j'utilise actuellement), tout fonctionne bien ?

    2ème question : Je souhaiterai idéalement utiliser le / comme séparateur. Dans ce cas, la page s'affiche mais de manière incorrecte (plus de prise en compte de la feuille de style).
    Est-ce possible (je souhaiterai par exemple que l'url soit monsite.com/fleurs/tulipes-rouges).

    Merci d'avance !

    Précision : hébergé chez OVH 240plan

  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
    Citation Envoyé par tulipe44 Voir le message
    1ère question : Si je souhaite utiliser le tiret comme séparateur, la page ne s'affiche pas (page blanche)
    Je précise que j'ai bien modifié au préalable les liens de mon site (ex. : monsite.com/fleurs-tulipes-rouges). Pourquoi cela ne fonctionne-t-il pas, alors qu'avec un underscore ou une virgule (ce que j'utilise actuellement), tout fonctionne bien ?
    Tu as essayé en mettant un \ devant le - dans ton RewriteRule ? Il faut savoir que -, comme le ., a un sens particulier dans les expressions régulières. Il peut donc être nécessaire de "l'échapper" pour lui redonner son sens littéral.

    Citation Envoyé par tulipe44 Voir le message
    2ème question : Je souhaiterai idéalement utiliser le / comme séparateur. Dans ce cas, la page s'affiche mais de manière incorrecte (plus de prise en compte de la feuille de style).
    Est-ce possible (je souhaiterai par exemple que l'url soit monsite.com/fleurs/tulipes-rouges).
    Dans ce cas, tu n'as pas d'autre choix que de mettre une URL relative à la racine du site (i.e. commençant par / : /rep/fichier.css) pour indiquer tes ressources attachées (images, CSS, JavaScript) car pour le navigateur, les ressources relatives simples sont relatives par rapport au chemin /fleurs/tulipes-rouges, par exemple car pour lui, / est un séparateur de répertoire.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    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
    Citation Envoyé par tulipe44
    1ère question : Si je souhaite utiliser le tiret comme séparateur, la page ne s'affiche pas (page blanche)
    Je précise que j'ai bien modifié au préalable les liens de mon site (ex. : monsite.com/fleurs-tulipes-rouges). Pourquoi cela ne fonctionne-t-il pas, alors qu'avec un underscore ou une virgule (ce que j'utilise actuellement), tout fonctionne bien ?
    Le tiret fait partie des motifs à l'inverse de la virgule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteRule ^([a-zA-Z0-9-]+)$ catalogue.php?categorie=$1 [L]
    RewriteRule ^([a-zA-Z0-9-]+),([a-zA-Z0-9-]+)$ catalogue.php?categorie=$1&produit=$2 [L]
    Donc il me paraît normal qu'il y ait "dysfonctionnement". Il faudrait l'exclure pour pouvoir l'utiliser comme séparateur.

    Citation Envoyé par tulipe44
    2ème question : Je souhaiterai idéalement utiliser le / comme séparateur. Dans ce cas, la page s'affiche mais de manière incorrecte (plus de prise en compte de la feuille de style).
    Est-ce possible (je souhaiterai par exemple que l'url soit monsite.com/fleurs/tulipes-rouges).
    Il convient si vous souhaitez mettre ce cas en application d'exclure un certain nombre de cas (tous les fichiers css, images, (java)scripts, ...) de la réécriture en ajoutant une condition (RewriteCond) aux règles concernées.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 13
    Points
    13
    Par défaut [RÉSOLU]
    Merci à tous les deux. Je parviens à utiliser le séparateur slash / en plaçant <base href="http://www.monsite.com/repertoire/" > dans le <head> de chaque page. C'est parfait ! Pour le tiret, ce n'est donc pas possible dans cette configuration.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 28/10/2010, 11h11
  2. Changer ses liens pour l'URL Rewriting
    Par bobic dans le forum Apache
    Réponses: 2
    Dernier message: 12/01/2007, 13h16
  3. Paramètres pour le Url Rewriting
    Par moscovisci dans le forum Apache
    Réponses: 1
    Dernier message: 29/12/2006, 16h05
  4. Aide pour url rewriting
    Par GarGamel55 dans le forum Apache
    Réponses: 2
    Dernier message: 12/10/2006, 09h14
  5. [Système] Aide pour coder l'url rewriting
    Par brousaille dans le forum Langage
    Réponses: 3
    Dernier message: 10/10/2006, 15h31

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