diff options
| author | Edin Kadribasic <edink@php.net> | 2002-11-22 10:15:47 +0000 |
|---|---|---|
| committer | Edin Kadribasic <edink@php.net> | 2002-11-22 10:15:47 +0000 |
| commit | 714a5be6ccea1bddb3e8d3a31fa520cb8b744f71 (patch) | |
| tree | ae9031a3ffe750c569af0fbd951d0fe51224be47 | |
| parent | f200f739d8089ac0156ea4064696d32fff45692c (diff) | |
| download | php-git-714a5be6ccea1bddb3e8d3a31fa520cb8b744f71.tar.gz | |
Fixed bug #19207 by adding cgi.rfc2616_headers configuration directive.
| -rw-r--r-- | php.ini-dist | 8 | ||||
| -rw-r--r-- | php.ini-recommended | 8 | ||||
| -rw-r--r-- | sapi/cgi/cgi_main.c | 19 |
3 files changed, 33 insertions, 2 deletions
diff --git a/php.ini-dist b/php.ini-dist index 05e78f8cff..5c85cc8c41 100644 --- a/php.ini-dist +++ b/php.ini-dist @@ -446,6 +446,14 @@ enable_dl = On ; Set to 1 if running under IIS. Default is zero. ; fastcgi.impersonate = 1; +; cgi.rfc2616_headers configuration option tells PHP what type of headers to +; use when sending HTTP response code. If it's set 0 PHP sends Status: header that +; is supported by Apache. When this option is set to 1 PHP will send +; RFC2616 compliant header. +; Set to 1 if running under IIS. Default is zero. +;cgi.rfc2616_headers = 0 + + ;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; diff --git a/php.ini-recommended b/php.ini-recommended index 8a59a5e954..49430c148b 100644 --- a/php.ini-recommended +++ b/php.ini-recommended @@ -461,6 +461,14 @@ enable_dl = On ; Set to 1 if running under IIS. Default is zero. ; fastcgi.impersonate = 1; +; cgi.rfc2616_headers configuration option tells PHP what type of headers to +; use when sending HTTP response code. If it's set 0 PHP sends Status: header that +; is supported by Apache. When this option is set to 1 PHP will send +; RFC2616 compliant header. +; Set to 1 if running under IIS. Default is zero. +;cgi.rfc2616_headers = 0 + + ;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; diff --git a/sapi/cgi/cgi_main.c b/sapi/cgi/cgi_main.c index fe0748f865..a647f6a26e 100644 --- a/sapi/cgi/cgi_main.c +++ b/sapi/cgi/cgi_main.c @@ -241,8 +241,23 @@ static int sapi_cgi_send_headers(sapi_headers_struct *sapi_headers TSRMLS_DC) int len; sapi_header_struct *h; zend_llist_position pos; - - len = sprintf(buf, "Status: %d\r\n", SG(sapi_headers).http_response_code); + long rfc2616_headers = 0; + + /* Check wheater to send RFC2616 style headers compatible with + * PHP versions 4.2.3 and earlier compatible with web servers + * such as IIS. Default is informal CGI RFC header compatible + * with Apache. + */ + if (cfg_get_long("cgi.rfc2616_headers", &rfc2616_headers) == FAILURE) { + rfc2616_headers = 0; + } + + if (rfc2616_headers && SG(sapi_headers).http_status_line) { + len = sprintf(buf, "%s\r\n", SG(sapi_headers).http_status_line); + } else { + len = sprintf(buf, "Status: %d\r\n", SG(sapi_headers).http_response_code); + } + PHPWRITE_H(buf, len); if (SG(sapi_headers).send_default_content_type) { |
