Expression régulière pour .htaccess

Fermé
Persilou Messages postés 3 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 24 décembre 2009 - 24 déc. 2009 à 15:08
 le gars sans nom - 17 janv. 2014 à 13:35
Bonjour à tous, et bonnes fêtes de fin d'année,

j'ai besoin de faire un .htaccess pour rediriger toute une plage d'url vers une autre url. Je sais faire la redirection, mais je ne maitrise pas assez les expressions régulières pour traduire mon besoin dans ce langage.

Ce que je voudrais faire est simple. Traduire en expression régulière la formule suivante :

Commence par index.php?
puis contient 5 ou 6 nombres à la suite entre 0 et 9
puis contient une lettre entre a et z

exemple : index.php?24568p

est-ce que quelqu'un saurait comment le dire en expression régulière ?

en vous remerciant
A voir également:

6 réponses

Utilisateur anonyme
24 déc. 2009 à 15:21
 ^index.php?([0-9]{5,6})([a-z]{1})$ 

pas plus compliqué que ça ^^
0
Persilou Messages postés 3 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 24 décembre 2009
24 déc. 2009 à 15:52
Rolala, déjà une réponse !

bon je teste ça dans mon .htaccess, et je vous fais un retour, que ça marche (j'espère bien !) ou pas ^^


merci !
0
Persilou Messages postés 3 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 24 décembre 2009
24 déc. 2009 à 15:59
ça marche pas :-(

j'ai ça dans mon .htaccess :
RewriteRule ^index.php?([0-9]{5,6})([a-z]{1})$ 404.html [R=301,L]

ça donne rien, les urls index.php?12345a ne sont pas redirigées :-(

arf, je comprend pas
0
le gars sans nom
17 janv. 2014 à 13:34
Rajoute un slash avant 404.html
0
le gars sans nom
17 janv. 2014 à 13:35
Rajoute un slash avant 404.html
0
Utilisateur anonyme
24 déc. 2009 à 16:27
Heu en fait je crois que ça vient du "?", je viens de tester avec
RewriteRule ^index.php([0-9]{5,6})([a-z]{1})$ 404.html

et ça fonctionne... si je trouve une solution je te dis ça ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
La solution, qui intéressera peut-être du monde :

RewriteCond %{QUERY_STRING} ^\d{5,6}[a-z]$
RewriteRule ^index\.php$ /404.html? [NC,R=301,L]
0
coding:cp1252 Messages postés 11 Date d'inscription dimanche 20 mai 2012 Statut Membre Dernière intervention 2 octobre 2012 1
2 oct. 2012 à 18:03
RewriteRule ^index.php\?([0-9]{5,6})([a-z]{1})$ 404.html [R=301,L] 

Le "?" est un MÉTACARACTÈRE, c'est un caractère qui signifie qqch dans les regex. Il faut faire perdre sa signifaction (on dit aussi "échapper") en mettant un backslash.
Et là, tout fonctionnera comme décrit dans le 1er post. Faut savoir parler chiniois ;)

Voici la liste des métacaractères: # ! ^ $ ( ) [ ] { } | ? + * .
Moi personnellement, j'utilise le dièse pour les limites de regex.
0