J'ai une application Web CGI existante qui fonctionnait normalement, mais dont le comportement a changé.
L'un des programmes cgi (sous certaines conditions) retourne un en-tête Location pour provoquer une redirection.
L'en-tête Location n'atteint jamais le navigateur Web. Au lieu de cela, Apache semble renvoyer le contenu de la page vers laquelle l'en-tête Location redirige.
Malheureusement, cette page contient du javascript qui utilise la chaîne de requête à l'intérieur de l'en-tête Location - mais avec ce nouveau comportement, la chaîne de requête est vide, car le navigateur pense toujours que l'emplacement est le script cgi d'origine.
Pourquoi ce comportement a-t-il changé et que puis-je faire pour l'empêcher?
apache-http-server
redirection
cgi
Nikki Locke
la source
la source
Location
tête.Réponses:
Selon cette réponse , CGI spécifie deux types de redirections différents: interne et externe.
Les redirections internes (invisibles pour le navigateur) sont utilisées lorsque vous spécifiez une URL sans schéma ni hôte (comme
otherpage.html
ou/index.html
) dans l'en-Location
tête.Les redirections externes (effectuées par le navigateur) ne sont utilisées que lorsque vous spécifiez une URL absolue (c'est-à-dire
http://www.example.com/some/other/page
). Les URL absolues doivent commencer par le schéma (c'est-à-direhttp
).La RFC 3875 contient la documentation pertinente:
la source