2009-10-06 7 views
0

je l'adresse suivante:Apache Regex ne retourne pas le premier résultat

http://somedomain.com/aa/search/search.php 

Je veux revenir 2 sélections, celle de « aa » et celle de « recherche/search.php ».

Avec l'aide de Regex Coach, j'ai fait l'expression régulière suivante qui cible ces deux très bien:

/([a-z]{2})/(.*) 

Cependant, quand je les utilise dans mon fichier htaccess, la réécriture ne se passe pas :

Options +FollowSymlinks 
RewriteEngine on 

RewriteRule /([a-z]{2})/(.*) /$2?var=$1 

Quelqu'un peut-il pointer ce newbie regex dans la bonne direction?

modifier:

par "ne se produit pas", je veux dire que l'URL suivant: somedomain.com/aa/search.php me donne
"/aa/search.php not found"
au lieu de
"/search.php?var=aa introuvable".

Répondre

1

Cela dépend de l'endroit où vous définissez la règle. Votre syntaxe est correcte pour les fichiers de configuration du serveur (global). Si vous utilisez des fichiers .htaccess, le serveur supprimera le chemin d'accès à l'emplacement du fichier à partir de l'URL. Essayez

([a-z]{2})/(.*) 

(à savoir sans la première barre oblique)

+0

Je suis en effet l'utilisation des fichiers .htaccess ... Ceci a résolu mon problème (en plus d'ajouter^à l'avant) –

Questions connexes