Récemment, nous avons remarqué que certains sites ont un lien incorrect avec l’URL encodée à l’URL, ce à quoi mon serveur (LAMP) répond par un message 404 Introuvable.
Par exemple, pour une URL de ce type:
http://www.site.com/page.php?param=value
Ils y lient comme ceci:
http://www.site.com/page.php%3Fparam%3Dvalue
Alors:
%3F
au lieu de ?
)?%3F
en ?
?Tout d’abord, comme @LazyOne l’a dit, les URL tierces ne sont pas générées correctement. Le serveur doit donc échouer, car il échoue actuellement, comme vous l'avez décrit.
Notez que le HTML valide et les URL valides sont une chose différente. Vous devriez entités d'échappement pour le contenu HTML , mais ce n'est pas vrai quand écrire des liens, des adresses d'image et des appels pour des fichiers externes .
Avant de décider de vous échapper ou non, demandez-vous: est-ce que cela va être lu par un utilisateur ou par un navigateur? La réponse vous dira quel type d'encodage vous devriez utiliser.