je bloque depuis 2 jours sur un truc tout con

Nouveau WRInaute
Voilà, j'ai un site (en local) qui prend en parametre un ID, et j'aimerais mettre ce paramettre dans l'URL

par exemple :

www.monsite.com/1 qui devrait pointer vers www.monsite.com/index.php?id=1

J'ai donc la règle suivante :

RewriteRule ^([a-zA-Z0-9_-]+) index.php?id=$1 [QSA,L]

Ca fonctionne mais j'ai plusieurs problèmes

1) Problemes de liens :
si on arrive avec l'URL www.monsite.com/1/, tous les liens sur le site sont modifiés pour devenir : www.monsite.com/1/index.php?... C'est nickel
Mais si on arrive avec l'URL www.monsite.com/1 (sans le /), les liens sur le sites dont du genre www.monsite.com/index.php?...

Comment je fais pour que tous mes liens aient le même format www.monsite.com/1/index.php?... quelque soit l'URL d'arrivée ?

2) Pour palier à ce probleme, j'ai ensisager de mettre les lien dans le genre href=$id/index.php au lieu de href=index.php.

Si je fais ca, à chaque click, j'ai un $ID qui apparait en plus pour finir après 3 liens avec qqch du genre : www.monsite.com/1/1/1/1/index.php?...

Si qqun a une idée ce serait gentil

le format du site est, sachant que les index.php appellent les autres pages :

www/index.php
www/admin/index.php

et qu'il faudrait appeler ces pages avec les URL suivantes :
www.monsite.com/1 -> www.monsite.com/1/index.php?id=1
www.monsite.com/1/ -> www.monsite.com/1/index.php?id=1
www.monsite.com/1/index.php -> www.monsite.com/1/index.php?id=1
www.monsite.com/1/index.php?... -> www.monsite.com/1/index.php?id=1&...

www.monsite.com/1/admin -> www.monsite.com/1/admin/index.php?id=1
www.monsite.com/1/admin/ -> www.monsite.com/1/admin/index.php?id=1
www.monsite.com/1/admin/index.php -> www.monsite.com/1/admin/index.php?id=1
www.monsite.com/1/admin/index.php?... -> www.monsite.com/1/admin/index.php?id=1&...

Un tout grand merci d'avance
 
WRInaute accro
Pas tout lu jusqu'au bout, mais en mettant un / au début de ton href peut-être?

Pour le reste, je ne suis pas sûr de bien comprendre... Le but du rewriting c'est d'éviter les URLs avec des index.php et des paramètres, donc pourquoi est-ce-que tu veux encore en générer?

Jacques.
 
WRInaute accro
J'ai bien compris. Mais pourquoi faire des liens vers des pages en index.php?id=1...? Pourquoi ne pas faire directement des liens vers /1/...?

Ceci dit, tes visiteurs ils vont a priori surtout taper monsite.com tout court (sans index.php?id=1 ou /1 ou /1/), ou suivre des liens.

Jacques.
 
Nouveau WRInaute
Nouveau WRInaute
Ok, semble que ce soit tout bon maintenant avec ceci :

RewriteEngine on
RewriteCond %{REQUEST_URI} !(admin|style|images)
RewriteRule ^([a-zA-Z0-9_-]+)(\/?|index\.php) index.php?id=$1 [QSA,L]

RewriteCond %{REQUEST_URI} (admin)
RewriteCond %{REQUEST_URI} !(style|images)
RewriteRule ^([a-zA-Z0-9_-]+)(\/admin\/?|admin\/index\.php) admin/index.php?id=$1 [QSA,L]
 
Discussions similaires
Haut