2010-10-23 7 views
1

Cela me rend fou, il devrait être facile, mais je ne peux pas ...Comment faire ce mod rewrite

J'ai besoin de réécrire les URL comme ceci les:

www.domain.com/foo/bar/more/evenmore.htm 
www.domain.com/foo/bar/more.htm 
www.domain.com/foo/bar.htm 
www.domain.com/foo.htm 

dans:

www.domain.com/?var1=foo&var2=bar&var3=more&var4=evenmore 
www.domain.com/?var1=foo&var2=bar&var3=more 
www.domain.com/?var1=foo&var2=bar 
www.domain.com/?var1=foo 

valeurs variables peuvent contenir [az] [AZ] [0-9] - _

+0

Y aura-t-il plus de 4 paramètres? – SimonJ

+0

Disons non ... – Peter

Répondre

1

Je ne pense pas qu'il y ait un seul moyen propre à le faire; Je crois que vous devez utiliser une règle par nombre d'éléments possibles dans le chemin. Par exemple:

^([^\/]*)\/([^\/]*)\/([^\/]*)\/(.*).htm$ ?var1=$1&var2=$2&var3=$3&var4=$4 [L] 
^([^\/]*)\/([^\/]*)\/(.*).htm$   ?var1=$1&var2=$2&var3=$3 [L] 
^([^\/]*)\/(.*).htm$      ?var1=$1&var2=$2 [L] 
^([^\/]*).htm$       ?var1=$1 [L] 

Vous pouvez ajouter jusqu'à neuf règles, parce que (AFAIK) mod_rewrite est limitée à 1 $ à 9 $ en tant que paramètres de substitution.

+0

fonctionne bien, merci! :) – Peter