RewriteRule et caractères spéciaux - PHP - Programmation
Marsh Posté le 11-03-2008 à 15:55:31
en fait ma question est par quoi remplacer le
/(.*)/ du RewriteRule
pour prendre en compte les ? et # et autres...
du genre
RewriteRule /([a-zA-Z0-9\?\" )+/...
Marsh Posté le 12-03-2008 à 09:09:19
comportement normal à priori, par exemple pour
Apache va utiliser
Le reste de l'URL étant considéré comme paramètre (query string)
plusieurs solutions :
- soit tu nettoies ton champ tfield
- soit tu "urlencode" ton champ lorsque tu crées tes liens
Marsh Posté le 12-03-2008 à 09:33:07
Oui j'utilisais le urlencode() quand mes liens étaient en clair, mais là je n'ai plus le contrôle, tout se déroule dans le .htaccess
ou je peux faire avaler du urlencode() au .htaccess?
comment?
merci
Marsh Posté le 12-03-2008 à 09:40:59
globule-chat a écrit : mais là je n'ai plus le contrôle, tout se déroule dans le .htaccess |
non, c'est toi qui crée les liens pas le htaccess
Marsh Posté le 12-03-2008 à 09:55:55
à quel moment je dois intervenir alors?
quand je passe une variable avec la valeur UGLY?, directement sur mon navigateur sur mon lien htpp, j'ai une erreur 404 et impossible de récupérer cette variable dans mes fichiers php
si je passe la variable encodée à la main UGLY%3F, là tout se déroule normalement.
Sauf que je vois pas à quel moment je peux encoder en interne le ? en %3F. à l'origine les variables sont stockées dans une base de données, où sont saisies dans un champ de recherche par les visiteurs du site, y'a peu de chances qu'ils saississent le ? en hexa...
merci
Marsh Posté le 12-03-2008 à 10:43:17
Oui ok, ça veut dire pas mal de code à reprendre...
Je voulais savoir s'il y'avait pas une solution plus light, juste une petite option à ajouter dans le .htaccess avant de me lancer dans la modif des .php
merci beaucoup pour l'aide en tout cas
Marsh Posté le 12-03-2008 à 10:58:51
tu peux modifier ton script pour qu'il gère lui même la réécriture,
genre dans ton htaccess tu mets
RewriteRule . index.php |
et dans index.php tu parse l'url pour faire ce qu'il faut
mais bon, pas très propre vu que tes urls ne respectent pas les standards
Marsh Posté le 08-03-2008 à 16:05:10
Bonjour,
Je mets en place l'url rewriting sur mon site, je ne rencontre pas de problèmes particuliers, sauf pour les caractères spéciaux, du genre : ? # /, etc.
Je m'explique, j'avais des pages du style
que je réécris
ma règle est donc :
Une erreur 404 apparaît si NOM contient un caractère spécial.
Les variables NOM sont stockées en BD et sont des chaînes avec toute sorte de caractères.
Comment dois-je réécrire ma règle pour réussir à faire accepter les dièses et point d'interrogation?
Quelqu'un a une idée? j'ai essayer d'échapper les caratères, mais ça ne marche pas.
je ne connais pas grande chose sur les expressions régulières et c'est difficile d'avoir des réponses pertinentes quand je recherche :
RewriteRule "caractères spéciaux" # ?
sur les moteurs.
Merci
alain