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] Passer le chemin en tant que paramètre d'URL


Sujet :

Apache

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 116
    Par défaut [URL rewriting] Passer le chemin en tant que paramètre d'URL
    Bonjour à tous,

    je suis en train d'essayer de mettre en place sur mon site l'URL rewritting mais sans succès. J'ai vérifier que le serveur le supportais, et c'est bon, j'ai réussi à faire les exemples que j'ai trouvé sur différents site mais je n'arrive pas à comprendre pourquoi ma regle ne fonctionne pas ...

    Le but rediriger:
    http://www.monsite.fr/page.php?ville=LE_TOUQUET
    par http://www.monsite.fr/LE_TOUQUET/


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule ^/([a-z])/\$  page.php?ville=$1 [L]

  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
    Ton code est dans un .htaccess ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 116
    Par défaut
    Oui la règle se trouve bien dans un htacess qui est a la racine des pages...

  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
    Dans ce cas, on ne peut pas faire commencer le premier membre d'un RewriteRule par ^/ car l'URL qui est passée dans ce filtre ne commence jamais par /.

    Ensuite, ton URL est LE_TOUQUET qui ne contient que des majuscules et des _ c'est-à-dire des caractères qui ne sont pas dans ton filtre RewriteRule. Il faut donc les ajouter.

    Enfin, \$ signifie le caractère $ (sans \ devant, $ marque la fin de la chaîne de caractères). Si tu veux que ta règle soit activée, il faut donc mettre un $ dans ton URL, ce qui n'est pas ce que tu veux. Il faut donc retirer le \ pour rendre à $ sa signification de marqueur de fin de chaîne.

    Si on ajoute ces trois modifications, ça donne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule ^([a-zA-Z_])/$  page.php?ville=$1 [L]

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 116
    Par défaut
    Merci de ton aide mais sa n'a pas l'air de fonctionner...

    Pour dieppe par exemple avec la regle que tu m'a donné cela me donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Not Found
     
    The requested URL /DIEPPE was not found on this server.

  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
    Citation Envoyé par _Mac_ Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([a-zA-Z_])/$  page.php?ville=$1 [L]
    Y a un / à la fin du premier paramètre de RewriteRule. Cela signifie que pour que la règle s'active il faut une URL qui se termine par / donc /DIEPPE/ et pas simplement /DIEPPE.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 116
    Par défaut
    ba avec monsite.fr/LE_TOUQUET/

    sa donne pareil

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Not Found
     
    The requested URL /LE_TOUQUET/ was not found on this server.

  8. #8
    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
    Manque un * :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([a-zA-Z_]*)/$  page.php?ville=$1 [L]
    Sans le *, seules les URL avec un seul caractère passent...

  9. #9
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Avril 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2006
    Messages : 92
    Par défaut
    voici la règle qui devrait te sauver je l'utilise et elle fonctionne bien tu peux la placer dans un .htaccess à la racine de ton site ou dans un fichier de configuration d'apache (si tu y a accès c'est mieux de le mettre directement ici).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    # conserver l'accès au vrais fichiers
    RewriteCond %{REQUEST_FILENAME} -s [OR] 
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [QSA,NC,L]
     
    # recupere les liens de maniere arborescente
    RewriteRule ^(.*)$ index.php?__DIR__=$1 [QSA,NC,L]
    ceci fonctionne pas dans certain cas :
    ex : monsite.com/graphique/lenomavecunslash0%2Fencoder

    si tu veux placer ça dans un sous-site il faudra modifier la règles de cette manière :

    RewriteRule ^soussite/(.*)$ soussite/index.php?__DIR__=$1 [QSA,NC,L]

    plus d'info sur les paramètres entre crochet dans la doc d'apache :
    http://httpd.apache.org/docs/2.0/mod...ml#RewriteRule

Discussions similaires

  1. Réponses: 9
    Dernier message: 07/08/2009, 09h53
  2. Réponses: 2
    Dernier message: 19/07/2009, 04h08
  3. Réponses: 4
    Dernier message: 28/04/2008, 12h43
  4. Réponses: 11
    Dernier message: 17/01/2008, 12h17
  5. Réponses: 6
    Dernier message: 19/12/2005, 13h41

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