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] Réécrire /repertoire/page.php?var=string en repertoire/page/string


Sujet :

Apache

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut [URL rewriting] Réécrire /repertoire/page.php?var=string en repertoire/page/string
    Bonsoir,

    Je cherche à réécrire les URLs de mon site (via un fichier .htaccess) de façon à ce qu'elles passent de cet état :

    http://www.domaine.com/repertoire/page.php?var=string

    A celui-ci :

    http://www.domaine.com/repertoire/page/string

    Ou encore :

    http://www.domaine.com/repertoire/page/string.php ou .html, peu importe.

    Le tout serait de créer une URL différente pour chaque "string", uniquement pour le sous répertoire /repertoire... En cherchant je suis tombé sur de nombreux exemples, mais aucun ne correspond à ce que j'ai besoin de faire. J'ai essayé ça en bidouillant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine ON
    RewriteRule ^page/([a-zA-Z0-9_-]+)/([a-z0-9]+)$ page.php?var=$2
    Mais je crois qu'avec Apache et les REGEX, on ne bidouille pas... Si quelqu'un pouvait m'aider ce serait super sympa

  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
    Je n'ai pas essayé mais elle m'a l'air pas mal cette règle : c'est quoi le problème avec elle ? Le seul truc que je vois c'est que tes URL d'exemples sont en /repertoire/page/string alors que ta règle suggère des URL en /page/nimportequoi/string, donc pour utiliser ta règle, il faut que tu utilises cette dernière forme d'URL.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Si je comprends bien, ça donnerait un truc comme ça?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine ON
    RewriteRule ^repertoire/^page/([a-z0-9]+)$ page.php?var=$2
    Merci Mr Gyver

  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
    Le second ^ ne va pas, il faut l'enlever, et il faut mettre $1 à la place de $2 (car les $N font référence aux groupes identifiés par des parenthèses, et dans ton cas, il n'y en a plus qu'un, donc $1). En corrigeant ça, ça devrait aller.

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/09/2012, 09h56
  2. Réponses: 1
    Dernier message: 19/07/2010, 00h24
  3. Réponses: 5
    Dernier message: 27/02/2010, 00h37
  4. Réponses: 11
    Dernier message: 17/01/2008, 13h17
  5. [Url Rewriting] Réécrire la partie query string
    Par 7studio dans le forum Apache
    Réponses: 5
    Dernier message: 23/11/2007, 16h55

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