Salut,
je vais réaliser un script qui passe touts les entiers sauf l'entier 14 qu'il n'est pas accepté , svp je besoin d'un pattern qui fait ça.
merci d'avance.








Salut,
je vais réaliser un script qui passe touts les entiers sauf l'entier 14 qu'il n'est pas accepté , svp je besoin d'un pattern qui fait ça.
merci d'avance.
Bonjour.
on pourait avoir plus de précision sur le but de ton script, ca aiderai, car selon ce que tu veux faire il y aurait plusieur possibilité, une simple structure de controle ou un regex ou autre chose encore.
Salut,
tu peux te servir de is_int() et de l'operateur !=
![]()








En fait je besoins de cette expression pour l'intégrer dans un htaccess,donc il me faut le pattern.
Voilà la ligne en test :
RewriteRule ^objets,c,1,70,70,([^14]),e.html$ http://localhost/monsite/objets,c,1,70,70,14,e.html [L,R]
OR ([^14]) ne marche pas !
Vous ne pourrez pas le faire alors mais vous pouvez créer une règle (même si son but n'est de ne rien faire) pour écarter cette exception :
On pourrait éventuellement ajouter une condition à votre règle de départ pour écarter ce cas :
Code X : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 # Ne rien faire si c'est ...14... RewriteRule ^objets,c,1,70,70,14,e\.html$ - [L] # Dans les autres cas, redirections RewriteRule ^objets,c,1,70,70,(\d+),e\.html$ http://localhost/monsite/objets,c,1,70,70,14,e.html [L]
La première solution est à préférer car plus claire et n'a pas besoin d'être adaptée par la suite si on change le chemin de son application.
Code X : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3# /!\ Chemin à vérifier/adapter RewriteCond %{REQUEST_URI} !^/monsite/objets,c,1,70,70,14,e\.html$ RewriteRule ^objets,c,1,70,70,(\d+),e\.html$ http://localhost/monsite/objets,c,1,70,70,14,e.html [L]








votre solution n'a pas fonctionné !!
c'est que je vais ,c'est faire une redirection vers le numéro 14 et par la suite il y a une autre règle qui fait le rewriting, donc cette ligne fonctionne mais si je tape 14 il y aura un boucle de redirection! :
RewriteRule ^objets-deco,c,1,70,70,([0-9]{0,2}[^14]),e.html$ http://127.0.0.1/monsite/objets,c,1,70,70,14,e.html [L,R]
RewriteRule ^(.*),c,([0-9]+),([0-9]+),([0-9]+),([0-9]+),(.*).html$ categories.php?a=$2&b=$3&c=$4&d=$5&e=$6
la variable en question est "d"
Si j'ai bien compris il fallait que cette exception soit également réécrite vers categories.php... ? Dans ce cas, vous pourriez faire la redirection directement à cette règle au lieu de ne rien faire :
Et il y a une boucle infinie même en conservant bien l'option [L] et en respectant leur ordre (l'exception avant les plus générales) ?
Code X : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 RewriteRule ^objets,c,1,70,70,14,e\.html$ categories.php?a=1&b=70&c=70&d=14&e=e [L] # ou semblable
Pouvez-vous donner l'intégralité de vos règles, surtout que vous ne donnez pas les mêmes entre vos différentes interventions ?








c'est pas ça le bp la ligne où j'ai mis [L,R] c'est pour ne perdre pas les pagerank de google
Code X : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 RewriteRule ^objets,c,1,70,70,14,e\.html$ categories.php?a=1&b=70&c=70&d=14&e=e [L] # ou semblable
cette ligne:
^objets,c,1,70,70,([0-9]{0,2}[^14]),e.html$
fonctionne mais pas dans le cas '41' ou '11' , c a d dans ces cas il n'y a pas renomage de l'url dans la barre d'adresse comme le cas où je tape 1 ou 2 ,... par exemple. tu vois le pb ?![]()
C'est ce que j'ai corrigé depuis le départ : [^14] ne fonctionnera pas, du moins, pas comme vous le pensez : ça n'interdit pas la valeur 14 mais que celle-ci se termine par 1 ou 4. D'où erreur 404 dans de tels cas de figure puisque l'url n'est pas réécrite.
Edit : sinon, il faut essayer d'utiliser une assertion négative pour interdire la valeur 14 :
Code X : Sélectionner tout - Visualiser dans une fenêtre à part RewriteRule ^objets,c,1,70,70,(?:(?!14)\d+),e\.html$ objets,c,1,70,70,14,e.html # + Options à ajouter : L ? R ?
Puis si vous voulez qu'il y ait redirection, donc que l'adresse soit modifiée, ajoutez simplement l'option R comme vous l'avez fait pour certaines.
Mais il faudrait une vue d'ensemble de vos règles car apparemment il y a des URL intermédiaires de redirection uniquement qui entrent en jeu, ce qui est loin de simplifier la tâche. Leur ordre et options utilisées jouent également.








Merci Julp,
ça bien fonctionné maintenant .
Partager