2009-09-09 8 views
0

J'essaye d'écrire une règle de mod_rewrite pour remapper quelques URL amicales pour des recherches, et mon regex-fu n'est pas si bon ... lol.mod_rewrite - diviser un nombre arbitraire de termes?

Fondamentalement, dans l'URL, après le sous-domaine, il y aura un nombre variable de mots (\ w), séparés par un caractère (disons +). Une expression vide est autorisée (c'est-à-dire "foo.bar.com"), puis après, quelque chose comme "foo.bar.com/birds", ou "foo.bar.com/birds+cats+fishes"). À partir de là, nous devons prendre les mots et les passer en tant que chaînes de requête. Comment allez-vous exactement diviser un nombre arbitraire de matchs, puis les transmettre à notre page PHP? Maintenant, si le séparateur était juste "+", eh bien, nous pourrions juste passer ce tout en un morceau discret à la page, car cela utilise + comme caractère séparateur de toute façon. Cependant, je suis curieux - si ce n'était pas le cas, comment le répartiriez-vous? Est-ce possible avec juste une règle mod_rewrite? Ou auriez-vous besoin d'utiliser autre chose?

Cheers, Victor

+0

Qu'entendez-vous par les séparer? – Gumbo

Répondre

0

Tant que vos séparateurs sont tous les caractères non-alpha vous pouvez simplement faire de la correspondance avide de ([A-Za-z]+)* (essentiellement la même chose que (\w+)*), et qui devrait vous net groupes de tous les mots rompu par d'autres caractères entre les deux.

Questions connexes