[Url Rewriting] Problème avec une action

Hello, j’utilise L’url Rewriting pour faire ceci :

Img.php?id=nomimage devient img-nomimage.html

Avant, j’utilisais ceci :

RewriteRule ^img-nom.html?#036; /img.php?id=nom [L]

J’utilisais ce code pour CHAQUE image, donc à chaque nouvelle image, je devais repater ce morceau de code en fonction de l’image.

Après avoir lu le cours sur l’url rewriting du Sdz, j’ai msi ceci :

RewriteRule ^img-([a-zA-Z0-9-]+)\.html?#036; /img.php?id=$1 [L]

Donc les images de nom d’id “image” deviennent bien img-image.html.

Le problème vient maintenant des images différentes :

certaines sont de cette forme : nom_image. Donc ici, img-nom_image.html ne marche plus.

Idem pour nom-image (tiret), j’ai essayé nomimage.html et la ca marche, mais j’aimerais uqe le tiret soit pris en compte, même chose pour le “_” j’aimerais uq’il soit converti en “-” pour que je n’ai pas à changer mes liens.

Que faut t’il changer dans mon code apache ici ?

RewriteRule ^img-([a-zA-Z0-9-]+)\.html?#036; /img.php?id=$1 [L]

Bonne journée et merci :slight_smile:


RewriteRule ^img-([a-zA-Z0-9-_]+)\.html?#036; /img.php?id=$1 [L]

devrait fonctionner :neutre:

En remplacant ton ?#036; par un $, j’obtiens un internal server error :frowning:

Je souhaite juste remplacer mes _ par un -, et que mes - dans les id soient pris en compte

Car ?id=nom-image > nom-image.html ne marche pas, nomimage.html marche :frowning:

Normal. Il s’agit de regexp perl, et en fait :

[a-zA-Z0-9-_]+

se lit :

interval a z
interval A Z
interval 0 9
et le "-" fait planter la regexp.

Ca non :

[a-zA-Z0-9_-]+
ou
[a-zA-Z0-9\-_]+

[edit] d’ailleurs, normalement tu peux activer les logs de l’url rewriting pour savoir où sont les problèmes. cf doc :slight_smile: bon ensuite si c’est pas ton serveur… :slight_smile:

Merci Sans-Nom, ca marche nickel maintenant :smiley:

J’ai compris le système, jm’en vais faire la même chose pour toutes les autres pages différentes :slight_smile:

Merci :slight_smile: