Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Serveurs (Apache, IIS,...) > Apache
Apache Forum d'entraide Apache. Avant de poster : Cours Apache, FAQ Apache
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/01/2012, 11h29   #1
Invité de passage
 
Inscription : novembre 2004
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 9
Points : 2
Points : 2
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 :
www.domain.com/dossier/page.html
en
Code :
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 :
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 :
www.domain.com/index.php?dir=dossier&p=page
et ne reste pas
Code :
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
mantalo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 12h07   #2
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 299
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 299
Points : 8 583
Points : 8 583
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.
__________________

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
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 12h47   #3
Invité de passage
 
Inscription : novembre 2004
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 9
Points : 2
Points : 2
Code :
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
mantalo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 12h50   #4
Invité de passage
 
Inscription : novembre 2004
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 9
Points : 2
Points : 2
j'ai fait de nouveau test dans ma sandbox :


Code :
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 -
mantalo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 15h58   #5
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 299
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 299
Points : 8 583
Points : 8 583
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.
__________________

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
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 22h32   #6
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 299
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 299
Points : 8 583
Points : 8 583
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 :
RewriteRule ^(.*)/(.*)\.html$ index.php?dir=$1&p=$2 [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
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h30.


 
 
 
 
Partenaires

Hébergement Web