2009-09-07 5 views
0

C'est complexe que je l'espère, a une réponse simple ...ModRewrite de Split Problème

RewriteRule ^category/([^.]+)/([0-9]+)/([^.]+)/([0-9]+) category.php?c_id=$2&filters=$3&_p=$4&name=$1 

Cette règle ramassait catégorie/cuisine/10/0-0-0-0-0-0 -0-0/1

les suivantes se vals:

category.php?c_id=10&filters=0-0-0-0-0-0-0-0&_p=1&name=kitchen 

les filtres raison ont été stockés dans 0-0-0-0-0-0-0-0 était à cause du 9 retour références limite. Chaque 0 était une variable de filtre différente à laquelle j'ai accédé en faisant une scission sur $ _GET ['filter'].

Je suis en train de changer mon URL à un mod non réécrite un, de sorte que la règle de réécriture devient:

RewriteRule ^category/([^.]+)/([0-9]+)/([^.]+)/([0-9]+) category.php?c_id=$2&filters=$3&_p=$4&name=$1 [R=301,L] 

Note à [R = 301, L] il devient une redirection 301.

Tout va bien, mais je me demandais s'il y avait une manière astucieuse de diviser le 0-0-0-0-0-0-0-0 de sorte que chaque 0 soit une variable get. Donc, je peux obtenir

category.php?c_id=10&f1=0&f2=0&f3=0&f4=0&f5=0&f6=0&f7=0&f8=0&_p=1&name=kitchen 

Une idée?

Merci d'avance!

Répondre

3

Vous pouvez utiliser un RewriteCond pour y parvenir:

RewriteCond $3 ^([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)$ 
RewriteRule ^category/([^.]+)/([0-9]+)/([^.]+)/([0-9]+) category.php?c_id=$2&f1=%1&f2=%2&f3=%3&f4=%4&f5=%5&f6=%6&f7=%7&f8=%8&f9=%9&_p=$4&name=$1 [R=301,L] 
+0

Cheers! Cela fonctionne très bien! – Lizard