Négation dans une expression régulière, comment faire

WRInaute discret
Bonjour,

je souhaiterais savoir si il est possible de réaliser la négation avec les expression régulière, afin d'écrire une règle pour mon htaccess

Ex: je rewrite l'url si il n'y a pas .html à la fin:

une règle du genre (qui ne marche pas bien sur)
Code:
toto/(.*[^(.html)])

une idée ???

D'avance merci

PS: En fait c'est une question d'ordre générique sur les Expr Reg et non destiné uniquement à l'URL Rewriting
 
WRInaute impliqué
Je commencerai par essayer :

Code:
RewriteCond %{REQUEST_URI} !\.html
RewriteRule (.*) $1.html [R=301]
 
WRInaute discret
en effet cela fonctionne mais il me faudrait une facon plus générique car je souhaiterais l'utiliser dans un pattern pour les fonctions php genre eregi, ... De plus la négation ne devant pas forcément se trouver à la fin et il peut y en avoir plusieurs.

[^abc] cela permet d'eviter les caracteres mais n'y a t il pas un moyen d'échapper une chaine entière ?
 
WRInaute discret
nop ça ne marche pas car cela signifie que la chaine doit commencer par (abc) et non qu'elle ne doit pas contenir abc
 
WRInaute impliqué
Avec mod_rewrite tu ne peux avoir de négation qu'au début de l'expression régulière.
 
Discussions similaires
Haut