ID: 17098
Comment by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Status: Bogus
Bug Type: Apache2 related
Operating System: custom linux
PHP Version: 4.0CVS-2002-05-08
New Comment:
This is still not fixed... PHP code needs modifying.
I have tried PHP 4.2.3 and 4.3.0-pre1 with Apache 2.0.43
running on RedHat 6.2, and it still returns erroneous 304s.
The following is what I 'borrowed' from the Apache's
mod_include.c, which seems working within PHP 4.2.3.
--- sapi/apache2filter/sapi_apache2.c~ Fri Aug 16 07:27:03 2002
+++ sapi/apache2filter/sapi_apache2.c Mon Oct 14 23:27:26 2002
@@ -558,14 +558,24 @@
return OK;
}
+static int includes_setup(ap_filter_t *f)
+{
+ /* We will ALWAYS set the no_local_copy value to 1 so
+ * that we will not send 304s.
+ */
+ f->r->no_local_copy = 1;
+
+ return OK;
+}
+
static void php_register_hook(apr_pool_t *p)
{
ap_hook_pre_config(php_pre_config, NULL, NULL,
APR_HOOK_MIDDLE);
ap_hook_post_config(php_apache_server_startup, NULL, NULL,
APR_HOOK_MIDDLE);
ap_hook_insert_filter(php_insert_filter, NULL, NULL,
APR_HOOK_MIDDLE);
ap_hook_post_read_request(php_post_read_request, NULL, NULL,
APR_HOOK_MIDDLE);
- ap_register_output_filter("PHP", php_output_filter, NULL,
AP_FTYPE_RESOURCE);
- ap_register_input_filter("PHP", php_input_filter, NULL,
AP_FTYPE_RESOURCE);
+ ap_register_output_filter("PHP", php_output_filter,
includes_setup, AP_FTYPE_RESOURCE);
+ ap_register_input_filter("PHP", php_input_filter,
includes_setup, AP_FTYPE_RESOURCE);
}
AP_MODULE_DECLARE_DATA module php4_module = {
Previous Comments:
------------------------------------------------------------------------
[2002-09-30 20:24:19] [EMAIL PROTECTED]
Sorry, but the bug system is not the appropriate forum for asking
support questions. Your problem does not imply a bug in PHP itself.
For a list of more appropriate places to ask for help using PHP,
please visit http://www.php.net/support.php
Thank you for your interest in PHP.
This is an Apache 2 bug.
According to http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9673
this bug has been corrected in Apache 2.0.42 and later.
------------------------------------------------------------------------
[2002-08-16 03:56:57] [EMAIL PROTECTED]
Sir, you are correct in your analysis.
------------------------------------------------------------------------
[2002-08-15 13:30:40] [EMAIL PROTECTED]
3+ months later and this still happens with Apache 2.0.40 and PHP
snapshot php4-200208150600 !!! Seems that PHP developers view Apache2
as pre-alpha and they don't want to touch it with a 10-foot stick.
------------------------------------------------------------------------
[2002-07-20 10:54:57] [EMAIL PROTECTED]
I'd like to post a workaround without patching apache or PHP....
Just edit your script(s) to send a 'header("Last-Modified: Mon, 26 Jul
1997 05:00:00 GMT");' or just some other date older than the mdate of
your script file. This solves the problem.
Reason:
The bug causes Apache2 to look for the mdate of the .php file to
determine if it has been modified.
If the browser first gets a header like above, it next time asks for
the page with an 'If-Modified-Since: Mon, 26 Jul 1997 05:00:00 GMT'.
Then, the httpd looks at the mdate of your script, which is always
newer and says: Yes, it has been modified, "200 OK". The script will be
served and it will response again with the header line from above.
Round and round the story goes. :))
Greets, and have fun!
Daniel
------------------------------------------------------------------------
[2002-07-10 13:43:02] [EMAIL PROTECTED]
Status -> Open
Apache devs are still argueing whether this is a bug in Apache or in
PHP :)
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/17098
--
Edit this bug report at http://bugs.php.net/?id=17098&edit=1