2010-01-15 4 views
2

Tout d'abord, laissez-moi vous dire ceci: je crains regex et htaccess. J'essaye de faire une règle qui analysera correctement des segments d'URL dans des variables. Jusqu'à présent j'ai ceci:Combinaison de plusieurs règles de réécriture htaccess en une seule

RewriteRule ^([^/]+)/?$ index.php?query[]=$1 [QSA,L] 
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?query[]=$1&query[]=$2 [QSA,L] 
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ index.php?query[]=$1&query[]=$2&query[]=$3 [QSA,L] 
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ index.php?query[]=$1&query[]=$2&query[]=$3&query[]=$4 [QSA,L] 

Cela fonctionne, en quelque sorte, mais je pense qu'il est plus long que nécessaire; et si je veux 5 ou 6 ou 7 variables? Existe-t-il un moyen plus condensé de l'écrire?

En outre, lorsque je crache le tableau de requête, le premier élément est toujours index.php. Qu'est-ce qui se passe avec ça?

Répondre

1

Ne pas utiliser RewriteRule pour convertir pathinfo aux paramètres de requête, mais juste activer MultiViews dans Apache HTTP Server et utiliser $_SERVER['PATH_INFO'] dans index.php avec peu d'aide de explode().

Questions connexes