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 : www.domain.com/dossier/page.html


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 10
    Par défaut Url Rewriting : www.domain.com/dossier/page.html
    Bonjour,

    J'ai un simple problème de rewriting.

    J'aimerais comme le titre l'indique rediriger mes liens de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    www.domain.com/dossier/page.html
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    www.domain.com/index.php?dir=dossier&p=page
    En sachant que dossier sera quasi exclusivement ecrit sous forme un-dossier

    j'utilise pour cela cette règle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^(.*)/(.*)\.html$ index.php?dir=$1&p=$2
    ici la règle ne fonctionne pas à cause du (.*)/(.*)
    En effet quand je le remplace par un _ pour tester la rule fonctionne.

    Par contre je viens de remarqué qqch de génant. Pour travailler du coup j'utilise la rule avec le _ mais l'url afficher après la redirection devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    www.domain.com/index.php?dir=dossier&p=page
    et ne reste pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    www.domain.com/dossier_page.html
    comme je l'aimerais

    Pourriez vous m'aider à régler ce problème mineur mais au combien embêtant

  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
    Est-ce que tu peux donner le .htaccess complet ? A priori il y a quelque part un flag R ([R]) qui force la redirection explicite du navigateur.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 10
    Par défaut
    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
    <IfModule mod_rewrite.c>
      RewriteEngine On
    </IfModule>
     
    RewriteBase   /toto
     
    <IfModule mod_rewrite.c>
      RewriteCond %{HTTPS} !=on
      RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
      RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
    </IfModule>
     
     
    RewriteRule ^(.*)/(.*)\.html$ index.php?dir=$1&p=$2
    RewriteRule ^(.*)/(.*)-(.*)\.html$ index.php?dir=$1&p=$2&c=$3
    #RewriteRule (.*)\.html index.php?p=$1
    Quand j'avais que la règle numéro 3 (les 2 premières n'existait pas, l'url restait bien en .html

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 10
    Par défaut
    j'ai fait de nouveau test dans ma sandbox :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <IfModule mod_rewrite.c>
      RewriteEngine On
    </IfModule>
     
     
    RewriteBase /-sandbox
     
    RewriteRule ^(.*)/(.*)\.html$ index.php?dir=$1&p=$2
    RewriteRule ^(.*)\.html$ index.php?p=$1

    http://127.0.0.1/-sandbox/pedro/toto.html
    -> dir = null et p = index.php/toto

    http://127.0.0.1/-sandbox/toto.html
    -> dir = null et p = toto (ok)

    j’enlève la 2eme regle
    http://127.0.0.1/-sandbox/pedro/toto.html
    -> dir =null et p = toto

    http://127.0.0.1/-sandbox/toto.html
    -> erreur

    à terme j'aurais besoin de faire une url :
    -sandbox/un-dossier/page-detail.html
    où un-dossier page et detail sont des variables et un-dossier est un mot composé contenant le -

  5. #5
    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
    Je ne comprends pas ce qu'il se passe. Je suis assez mal à l'aise avec les RewriteBase, je n'aime pas ça. Il faut que je teste. J'essaie de faire ça ce soir.

  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
    C'est tout bête, en fait : il manque un [L] à la fin de tes RewriteRule (à la fin de la première règle suffit) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^(.*)/(.*)\.html$ index.php?dir=$1&p=$2 [L]

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/12/2009, 21h16
  2. Réponses: 7
    Dernier message: 10/07/2008, 01h52
  3. Réponses: 2
    Dernier message: 16/04/2008, 15h27
  4. Réponses: 1
    Dernier message: 06/12/2007, 17h13
  5. Réponses: 3
    Dernier message: 31/07/2007, 16h40

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