2010-02-11 6 views
0

J'utilise Apache/PHP pour prendre en charge les liens vers les documents et j'ai des problèmes avec Regex pour rediriger correctement.Liens rapides RewriteRule Regex

Mes liens prennent la forme de 8 lettres/chiffres, quelque chose comme '1abc45fd', je voudrais les faire rediriger vers /shortlink.php?link=1abc45fd mais ça ne fonctionne pas correctement. J'utilise l'expression suivante: "RewriteRule^([a-zA-Z0-9] +) $" dans mon fichier .htaccess mais qui redirige toutes les URL, pas seulement celles qui ne sont que de 8 caractères. Comment puis-je modifier la règle pour limiter exactement les 8 caractères?

Merci d'avance.

Répondre

2
RewriteRule ^([a-zA-Z0-9]{8})$ shortlink.php?link=$1 

Vous pouvez vous familiariser avec les expressions régulières syntaxe un peu plus, j'ai trouvé this Regex Reference page être un bon début.

+0

Merci, je vais vous donner qu'un aller! J'ai essayé d'apprendre Regex au fur et à mesure quand j'avais besoin de l'utiliser mais ça n'a toujours aucun sens pour moi, je suppose que je vais devoir continuer à essayer! –

+0

"{8}" signifie exactement huit caractères de l'ensemble précédent, et "$ 1" référence la première correspondance entre parenthèses (sous-expression) dans l'expression – Sonny

0
RewriteRule ^([a-zA-Z0-9]{8})$ 

EDIT: Aistina me devança