Bonjour à tout le monde,
A l'intérieur d'un répertoire, j'ai une page source.php qui prend en paramètre une chaîne de caractères (uniquement des minuscules et/ou des chiffres et/ou des tirets haut). J'ai donc pondu, malgré mon manque de compétences dans le domaine, une règle comme ceci :
Si j'enlève le tiret dans cette règle, tout se passe bien. Si ce n'est, évidemment, que je ne peux pas utiliser le tiret dans la chaîne de caractères passée en paramètres.
Si je mets ce tiret dans cette règle : erreur 500. Que le tiret soit échappé ou non, au début ou à la fin.
Si je remplace ce tiret par un underscore, aucun souci, je peux passer une chaîne genre "ma123_chaine", ça marche bien.
Idem si je remplace ce tiret par "\\" (sans les guillemets bien sûr). Je peux glisser un antislash au milieu de ma chaîne, pas de soucis.
Alors en un mot comme en mille, j'y pige vraiment rien.
Au cours de mes très nombreuses tentatives, j'ai obtenu d'autres genres de résultats pour le moins étranges (à mon humble niveau) :
- Sur la première règle, je peux passer quelque chose comme "123-foo.php". Mais je ne peux pas utiliser la lettre "u", qui n'est pas présente, comme vous l'aurez remarqué avec vos yeux de lynx.
- Sur la seconde règle, je peux enfin passer mon "u", et passer genre "123-youpi.php". Mais, toujours avec votre vue supersonique, vous aurez vu que j'aurais pour cela dû sacrifier la lettre "t".
Dans ces deux cas, ce que je constate, c'est que le caractère dont je dois me passer se situe toujours au même endroit (allez savoir pourquoi).
Vous me direz : bin rajoute la, ta lettre manquante bougre d'âne !
En tout cas, c'est ce que moi je me suis dit. Même ma femme me l'a dit.
Mais quand je le fais : erreur 500.
Pitié, dites-moi que vous avez des idées
Modifié par Drakarys (13 Apr 2014 - 10:13)
A l'intérieur d'un répertoire, j'ai une page source.php qui prend en paramètre une chaîne de caractères (uniquement des minuscules et/ou des chiffres et/ou des tirets haut). J'ai donc pondu, malgré mon manque de compétences dans le domaine, une règle comme ceci :
RewriteRule ^([a-z0-9-]+)\.php$ /dossier/source.php?param=$1 [L]
Si j'enlève le tiret dans cette règle, tout se passe bien. Si ce n'est, évidemment, que je ne peux pas utiliser le tiret dans la chaîne de caractères passée en paramètres.
Si je mets ce tiret dans cette règle : erreur 500. Que le tiret soit échappé ou non, au début ou à la fin.
Si je remplace ce tiret par un underscore, aucun souci, je peux passer une chaîne genre "ma123_chaine", ça marche bien.
Idem si je remplace ce tiret par "\\" (sans les guillemets bien sûr). Je peux glisser un antislash au milieu de ma chaîne, pas de soucis.
Alors en un mot comme en mille, j'y pige vraiment rien.

Au cours de mes très nombreuses tentatives, j'ai obtenu d'autres genres de résultats pour le moins étranges (à mon humble niveau) :
RewriteRule ^([-abcdefghijklmnopqrstvwxyz0123456789]+)\.php$ /dossier/source.php?param=$1 [L]
RewriteRule ^([-uabcdefghijklmnopqrsvwxyz0123456789]+)\.php$ /dossier/source.php?param=$1 [L]
- Sur la première règle, je peux passer quelque chose comme "123-foo.php". Mais je ne peux pas utiliser la lettre "u", qui n'est pas présente, comme vous l'aurez remarqué avec vos yeux de lynx.
- Sur la seconde règle, je peux enfin passer mon "u", et passer genre "123-youpi.php". Mais, toujours avec votre vue supersonique, vous aurez vu que j'aurais pour cela dû sacrifier la lettre "t".
Dans ces deux cas, ce que je constate, c'est que le caractère dont je dois me passer se situe toujours au même endroit (allez savoir pourquoi).
Vous me direz : bin rajoute la, ta lettre manquante bougre d'âne !
En tout cas, c'est ce que moi je me suis dit. Même ma femme me l'a dit.
Mais quand je le fais : erreur 500.
Pitié, dites-moi que vous avez des idées



Modifié par Drakarys (13 Apr 2014 - 10:13)