web-dev-qa-db-fra.com

Comment gérer les URL mal codées?

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:

  • Qui a tort Mon serveur pour ne pas comprendre? ou le site de liaison pour ne pas spécifier correctement l'URL?
  • Quelque chose pourrait être fait pour configurer Apache afin qu'il comprenne le délimiteur de chaîne de requête mal codé (%3F au lieu de ?)?
  • Sinon, serait-il prudent de configurer les redirections en traduisant le %3F en ??
5
Itai

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.

2
Dave