¿Por qué apache no pasa el encabezado de ubicación del script cgi al cliente?

0

Tengo una aplicación web cgi existente que solía funcionar bien, pero cuyo comportamiento ha cambiado.

Uno de los programas cgi (bajo ciertas condiciones) devuelve un encabezado de ubicación para provocar un redireccionamiento.

El encabezado de la ubicación nunca llega al navegador web; en cambio, parece que Apache devuelve el contenido de la página a la que se redirige el encabezado de la ubicación.

Desafortunadamente, esa página contiene javascript que usa la cadena de consulta dentro del encabezado de la ubicación, pero con este nuevo comportamiento, la cadena de consulta está vacía, porque el navegador aún cree que la ubicación es el script cgi original.

¿Por qué ha cambiado su comportamiento y qué puedo hacer para evitar que suceda?

Nikki Locke
fuente
Aparentemente , la clave es si se especifica una URL absoluta en el Location encabezamiento.
Daniel B
Jajaja Nunca lo supe. Si convierte su comentario en una respuesta, lo aceptaré con gusto.
Nikki Locke

Respuestas:

1

De acuerdo a esta respuesta , CGI especifica dos tipos diferentes de redirecciones: internas y externas.

Redirecciones internas (invisible para el navegador) se usa cuando se especifica una URL sin esquema y host (como otherpage.html o /index.html ) en el Location encabezamiento.

Redirecciones externas (realizado por el navegador) se utilizan solo cuando se especifica una URL absoluta (es decir, http://www.example.com/some/other/page ). URLs absolutas debe comenzar con el esquema (es decir, http ).

RFC 3875 Contiene la documentación relevante:

El campo Encabezado de ubicación se usa para especificar al servidor que el      El script está devolviendo una referencia a un documento en lugar de una real      documento (ver secciones 6.2.3 y 6.2.4). O bien es un absoluto.      URI (opcionalmente con un identificador de fragmento), lo que indica que el      el cliente es recuperar el documento al que se hace referencia, o una ruta URI local      (opcionalmente con una cadena de consulta), lo que indica que el servidor debe      obtener el documento de referencia y devolverlo al cliente como el      respuesta.

Daniel B
fuente