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 du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 116
    Points : 62
    Points
    62
    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
    Points : 12 977
    Points
    12 977
    Par défaut
    Ton code est dans un .htaccess ?

    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
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 116
    Points : 62
    Points
    62
    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
    Points : 12 977
    Points
    12 977
    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]

    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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 116
    Points : 62
    Points
    62
    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
    Points : 12 977
    Points
    12 977
    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.

    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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 116
    Points : 62
    Points
    62
    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
    Points : 12 977
    Points
    12 977
    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...

    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

  9. #9
    Membre régulier
    Homme Profil pro
    Consultant
    Inscrit en
    Avril 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    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
    Points : 117
    Points
    117
    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
    Mieux vaut poser une question con que de le rester.
    Ya pas que le whisky dans la vie y a la vodka aussi.

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