[Résolu][url_rewriting]Créer des répertoires virtuels

  • Auteur de la discussion Auteur de la discussion tangui
  • Date de début Date de début
WRInaute impliqué
Bonjour,
j'aimerai faire de l'Url rewriting de ce type:

www.toto.com/index.php?categorie=$1 --> www.toto.com/$1
www.toto.com/index.php?categorie=$1&ss_categorie --> www.toto.com/$1/$2
www.toto.com/index.php?categorie=$1&ss_ ... $2&page=$3 --> www.toto.com/$1/$2/$3

J'ai fait ca:
Code:
RewriteRule ^(.*)$ index.php?categorie=$1
RewriteRule ^(.*)\/(.*)$ index.php?categorie=$1&ss_categorie=$2
(pour le 3ieme truc, j'ai pas encore fait)

Alors, ca marche pour le 1er (sur le serveur, pas en local chez moi) mais ca ne marche aps pour le deuxieme... En fait, il me fait:
$1=www.toto.com/index.php?
$2=le bon parametre...

Je pense que pour lui ^(.*)$ index.php?categorie=$1 et ^(.*)\/(.*)$ index.php?categorie=$1&ss_categorie=$2 c'est la meme chose...
Comment faire pour lui dire d'appliquer les rèles à partir du / apres mon adresse internet?
J'ai déjà essayé de rajouter:
http:\/\/www.toto.com\/
devant mais sans succès :(

Des idées? car la je sèche complet...
 
WRInaute impliqué
C'est plus lisible, je préfererai...
En fait, c'est soit ^(.*)$ ou soit ^(.*)\/(.*)$
si je met les deux, un des deux plantera :(
 
WRInaute passionné
bonjour.
  1. il existe pour donner des exemples d'URL les domaines example.com, .org et .net (avec un a).
  2. les règles de réécriture doivent TOUJOURS s'appliquer de la plus PRECISE à la plus générale. ET il faut mettre [L] à la fin de la ligne si on veut éviter qu'une autre règle "capte" à nouveau l'adresse.
    De la même façon que si je veux rediriger toutes les voitures jaunes à jante alu voulant traverser un pont vers la rocade, et jeter toutes les autres voitures jaunes à l'eau, il faut écrire
    Code:
    redirect voiturejauneajantealu rocade [L]
    redirect voiturejaune àleau[L]
    et non pas l'inverse, sinon une fois jetée à l'eau ta voiture sera impossible à trier selon le type des jantes.

Voilà.


Soit dit en passant : j'adore mes exemples.
 
WRInaute discret
Salut,

Et si tu essaies un truc dans le genre ?

Code:
RewriteRule ^(.*)\/(.*)(.?|\/)$ index.php?categorie=$1&ss_categorie=$2
RewriteRule ^(.*)(.?|\/)$ index.php?categorie=$1

Tiens nous au courant,

A+

Doug
 
WRInaute impliqué
J'ai fait un mélange de ce que vous m'avez donné, et ca a l'air de marcher :D merci!!
Code:
RewriteRule ^(.*)\/(.*)(.?|\/)$ index.php?categorie=$1&ss_categorie=$2 [L] 
RewriteRule ^(.*)(.?|\/)$ index.php?categorie=$1 [L]
 
WRInaute impliqué
Ce qui est fou, c'est que ca ne fonctionne pas en local avec easyphp...
Edit: si c'est bon ca marche, tout est question d'ordre... :)

Hop je mets le sujet résolu :)
 
WRInaute discret
Salut,

Bon c'est cool que ça fonctionne.

Au temps pour moi j'ai oublié de mettre les [L] à la fin de chaque règle.

Sinon pour que cela fonctionne en local, tu as une manip à faire, quelqu'un du forum l'avait donnée. En revanche je ne me souviens ni de la manip, ni de son auteur... Mémoire quand tu nous lâches... :)

A+

Doug
 
Nouveau WRInaute
Bon moi aussi j'ai un petit souci...

Voila je veux passer mes pages :

liens
tourisme
tourisme/lisbonne

en :

index.php?page=liens
index.php?page=tourisme
index.php?page=tourisme/lisbonne

Avec ceci :

RewriteEngine On
RewriteRule ^(.+)\.html$ index.php?page=$1


j'arrive a faire tout marcher mais...

le tourisme/lisbonne me pose probleme car je ne saurais pas l'expliquer mais j'ai ma page sans les images... en fait je doit etre dans un repertoire virtuel mais comment faire pour remettre tout ça a la racine du site ???
 
Discussions similaires
Haut