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

EDI, CMS, Outils, Scripts et API PHP Discussion :

URL rewriting - REGEX


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Technicien chez Free
    Inscrit en
    Septembre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien chez Free
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 65
    Points : 40
    Points
    40
    Par défaut URL rewriting - REGEX
    Alors voila j'ai un problème avec un regex.

    j'utilise la technique de l'URL rewriting pour crée une url simple.

    Remplacer www.champo.fr/profile.php?id=4

    par

    www.champo.fr/tydoo.

    Pour ce la j'utilise un regex dans mon .htaccess :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteEngine on
    Options +FollowSymlinks
    RewriteRule ^([-A-Za-z0-9]+)$   /profile.php?pseudo=$1 [L]
    Dans mon regéx j'autorise toute les lettres simple minuscule et majuscule ainsi que le tiret (-).

    J'aimerais ajouté le point (.) et les accents : (é è à î ï...).

    J'ai un autre probléme. C'est quand je vais sur des page que je veux pa changer comme ca

    le lien :

    www.champo.fr/ami

    Il me met ca :

    www.champo.fr/ami/?pseudo=amis

    Alors que je ne veux pas de ca sur ces page. Je ne veux qu'il le fasse que sur :

    www.champo.fr/profile.php


    Pouvez vous m'aider SVP ?

    Merci a vous

  2. #2
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 563
    Points : 2 390
    Points
    2 390
    Par défaut
    Alors forcement, pour www.champo.fr/ami l'url rewriting va croire que "ami" est un pseudo et qu'il faut réaliser la redirection.

    Mis à part lister toutes les pages qui ne sont pas des pseudo pour les exclure de la redirection, il n'y a pas grand chose à faire.
    Et puis tu risques avoir des conflits si tu as un membre qui a pour pseudo l'url d'une autre page...

    Le mieux à mon avis c'est de rediriger autrement, par exemple :
    www.champo.fr/profil/tydoo vers www.champo.fr/profile.php?pseudo=tydoo

    et du coup la regex devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteEngine on
    Options +FollowSymlinks
    RewriteRule ^profil/([-A-Za-z0-9]+)$   /profile.php?pseudo=$1 [L]

    Sinon pour acepté les point et les accent, il faut les ajouter dans ta regex. Pour le point il faut l'échapper avec \ car c'est un caractère spécial :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteEngine on
    Options +FollowSymlinks
    RewriteRule ^profil/([-A-Za-z0-9\.àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ]+)$   /profile.php?pseudo=$1 [L]
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    autant faire juste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^profil/(.+)$   /profile.php?pseudo=$1 [L]

  4. #4
    Membre du Club
    Homme Profil pro
    Technicien chez Free
    Inscrit en
    Septembre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien chez Free
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 65
    Points : 40
    Points
    40
    Par défaut
    Merci mais ca ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RewriteRule ^([-A-Za-z0-9\.àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ]+)$   /profile.php?pseudo=$1 [L]
    Quel est le code pour ne pas prendre en compte des page comme /amis ?

    Merci =)

  5. #5
    Membre du Club
    Homme Profil pro
    Technicien chez Free
    Inscrit en
    Septembre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien chez Free
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 65
    Points : 40
    Points
    40
    Par défaut
    Voila mon fichier htacces a la racine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    #\\\\\\\\\\\\CONFIG SRV PHP5\\\\\\\\\\\\\\\\\\#
     
    SetEnv PHP_VER 5
     
    #\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\#
     
    #----------------------------------------------------
     
    #\\\\\\\\\\\\\\\\\ERREUR\\\\\\\\\\\\\\\\\\\\\\#
     
    ErrorDocument 404 /404.php
    ErrorDocument 403 /403.php
    ErrorDocument 500 /500.php
     
    #\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\#
     
     
    RewriteEngine on
    Options +FollowSymlinks
    #Utilise seulement le site avec www
    RewriteCond %{HTTP_HOST} ^mdl-champollion.fr$
    RewriteRule ^(.*)   http://www.mdl-champollion.fr/$1  [QSA,L,R=301]
     
    #--------------------------------------------------
    # Règles de réécriture d'URL :
    #--------------------------------------------------
     
     
    RewriteRule ^([-A-Za-z0-9àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ]+)$ /profile.php?pseudo=$1 [L]

  6. #6
    Membre du Club
    Homme Profil pro
    Technicien chez Free
    Inscrit en
    Septembre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien chez Free
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 65
    Points : 40
    Points
    40
    Par défaut
    bon j'ai trouvé. Les url n'accepte pas les accent. Donc je les ai enlever.

    Par contre, j'aimerais rajouté le . MAis ca marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([A-Za-z0-9-_]+)$ /profile.php?pseudo=$1 [L]

Discussions similaires

  1. [RegEx] Regex Url Rewriting - Portion conditionnelle
    Par sweety_des_isles dans le forum Langage
    Réponses: 6
    Dernier message: 08/12/2008, 16h44
  2. Aide pour un regex url rewriting
    Par Bouki dans le forum Apache
    Réponses: 2
    Dernier message: 12/11/2008, 10h02
  3. [Url Rewriting] Regex complexe
    Par T0xF0x dans le forum Apache
    Réponses: 7
    Dernier message: 27/05/2006, 21h35
  4. [url rewriting] Regex plus propre ?
    Par seb_perl dans le forum Apache
    Réponses: 1
    Dernier message: 14/12/2005, 16h47
  5. [RegEx] url rewriting - regex
    Par vnk600 dans le forum Langage
    Réponses: 1
    Dernier message: 20/11/2005, 22h42

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