Bonsoir,
je suis sur un RedirectMatch sous SSH et je tente de rediriger une URL A vers une URL B comportant un % ....mais voilà, impossible de trouver le bon code.
si j'indique un % sous SSH...mon URL affiche %25

j'ai remarqué que pour un é, l'utilisation de é fonctionnait....quelle serait alors la correspondance pour % ?

Qq'un aurait une idée?
Merci de votre aide!
Hello,

Je crois que tu mélanges plusieurs trucs là. RedirectMatch ce n'est pas en SSH, c'est une directive de configuration du serveur Apache. Tu écris ce type de directive dans un fichier .htaccess ou dans un fichier de configuration autre (par exemple le fichier qui définit le VirtualHost). Que tu édites ce fichier avec vi ou nano depuis une connexion SSH, ça n'a pas de rapport avec la choucroute à priori.

Donc, tu as une URL qui comporte le signe "%". Deux possibilités:
- soit ce signe est utilisé pour représenter un caractère non-ASCII, par exemple une lettre accentuée ou un espace;
- soit tu veux vraiment avoir le signe "%" dans ton URL, visible tel quel par le visiteur.

Pour rappel, les URL de page web ne peuvent contenir que des caractères ASCII (et encore, pas tous). Les autres caractères, si on tient à les utiliser, doivent être «échappés» sous la forme %N[%N[%N]], où N est un nombre hexadécimal. Le caractère "%" est échappé en %25, effectivement.

Donc si quelqu'un a eu la très mauvaise idée de publier une page web avec le nom de fichier "Réduction 30%.html", l'URL correspondante ressemblera à ceci:
http://example.com/R%C3%A9duction%2030%25.html

Une fois qu'il sera redirigé à cette adresse, l'utilisateur verra dans sa barre d'adresse soit "R%C3%A9duction%2030%25", soit "Réduction 30%", ça dépend de son navigateur et de la version du navigateur. Les anciennes versions d'Internet Explorer et Firefox affichaient l'URL «réelle», tandis que les nouvelles versions ont tendance à afficher les caractères qui correspondent aux séquences d'échappement (URL «lisible»).

Pour connaitre le nom en notation "percent encoding" d'un fichier, tu peux utiliser cet outil:
http://rishida.net/tools/conversion/
Modifié par Florent V. (11 Oct 2010 - 17:13)
Merci bcp pour ta réponse.

Je pense que tu as pointé le problème.

L'échappement [%25] qui devrait mon donner le % dans l'URL me donne l'erreur :

Exception : java.lang.IllegalArgumentException
Message : URLDecoder: Illegal hex characters in escape (%) pattern 


Bref, l'échappement n'apprécie pas le % et du coup ne résoud pas mon souci.
La solution est certainement très proche.
Apparemment c'est ton application web qui n'aime pas les caractères % littéraux dans les URL. Donc ce ne serait pas un souci avec la configuration d'Apache.
(Si en tapant l'URL -- avec son %25 -- directement dans le navigateur tu obtiens cette erreur, Apache me semble mis hors de cause.)
Modifié par Florent V. (12 Oct 2010 - 15:45)