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

tangui

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...
 

tangui

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 :(
 

Patrice A.

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.
 

dasikund

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
 

tangui

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]
 

tangui

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 :)
 

dasikund

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
 

Alexmp4

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