2012-01-11 22 views
5

Por lo general, cuando se envía un encabezado de estado HTTP desde PHP, se podría enviar la cabecera HTTP como esto:¿Todavía es necesario usar 'Estado: 404 no encontrado' para FCGI?

header("HTTP/1.0 404 Not Found"); 

Sin embargo, el PHP manual dice que para los anfitriones fcgi, uno tendría que enviar un "Estado" de cabecera que se convierte entonces en una cabecera HTTP por el módulo FCGI:

header("Status: 404 Not Found"); 

estoy corriendo Apache 2.2 con PHP usando mod_fcgi en una máquina Windows 7 y el envío de la cabecera usando sólo header("HTTP/1.0 404 Not Found"); parece funcionar bien.

¿Esto es algo que ha cambiado recientemente? ¿Todavía necesito enviar un encabezado Status para los hosts FCGI? ¿Podría alguien también confirmar esto para otras plataformas (Solaris, Linux) y otros servidores web (nginx, lighttp)?

Respuesta

3

No creo que necesite usar el encabezado de estilo 'Estado' a menos que tenga habilitada la opción cgi.rfc2616_headers. .

La descripción de esa opción es http://php.net/manual/en/ini.core.php

"Le dice a PHP qué tipo de cabeceras para utilizar al enviar la respuesta HTTP código Si su valor es 0, PHP envía un Estado: cabecera que se apoya en Apache y otros servidores web. Cuando esta opción se establece en 1, PHP enviará »encabezados que cumplen con RFC 2616. Déjalo en 0 a menos que sepa lo que está haciendo.

Básicamente está enviando encabezados de estilo HTTP a PHP y luego PHP los convierte a los encabezados de estilo 'Estado' donde sea necesario. Parece que hubo varios errores a lo largo de los años donde estos o bien se convirtieron incorrectamente o se enviaron múltiples encabezados de 'Estado' a la vez, sin embargo, todos esos errores parecen estar solucionados ahora. Así que creo que está a salvo simplemente configurando los encabezados de estilo HTTP y dejando que PHP los convierta.

También acabo de probar y enviar el encabezado ("HTTP/1.0 404 no encontrado"); funciona bien en mi entorno de desarrollo usando FastCGI

Cuestiones relacionadas