Commit: 4a92ae34011ad2246500f27469f378b66d832976 Author: Remi Collet <r...@php.net> Tue, 30 Apr 2013 08:55:18 +0200 Parents: 4e773c1b92c5db328fbbca36e566a1c76957be63 Branches: PHP-5.4 PHP-5.5 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=4a92ae34011ad2246500f27469f378b66d832976 Log: When Apache use RewriteRule to redirect, via mod_proxy_fgi, to php-fpm the SCRIPT_FILENAME may contains the QUERY_STRING. Ex : RewriteRule ^(.*)\.php$ fcgi://127.0.0.1:9000/$1.php [P] From apache debug (build with -DFCGI_DUMP_ENV_VARS) AH01062: sending env var 'SCRIPT_FILENAME' value 'proxy:fcgi://127.0.0.1:9000/var/www/html/info.php?foo' AH01071: Got error 'Primary script unknown\n' Changed paths: M NEWS M sapi/fpm/fpm/fpm_main.c Diff: diff --git a/NEWS b/NEWS index 2527cfc..3a9199b 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,9 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? 2013, PHP 5.4.16 +- FPM: + . Ignore QUERY_STRING when sent in SCRIPT_FILENAME. (Remi) + ?? ??? 2013, PHP 5.4.15 - Core: . Fixed bug #64578 (debug_backtrace in set_error_handler corrupts zend heap: diff --git a/sapi/fpm/fpm/fpm_main.c b/sapi/fpm/fpm/fpm_main.c index 61088c4..28ed0be 100644 --- a/sapi/fpm/fpm/fpm_main.c +++ b/sapi/fpm/fpm/fpm_main.c @@ -1098,7 +1098,7 @@ static void init_request_info(TSRMLS_D) #define APACHE_PROXY_FCGI_PREFIX "proxy:fcgi://" /* Fix proxy URLs in SCRIPT_FILENAME generated by Apache mod_proxy_fcgi: - * proxy:fcgi://localhost:9000/some-dir/info.php/test + * proxy:fcgi://localhost:9000/some-dir/info.php/test?foo=bar * should be changed to: * /some-dir/info.php/test * See: http://bugs.php.net/bug.php?id=54152 @@ -1118,6 +1118,11 @@ static void init_request_info(TSRMLS_D) memmove(env_script_filename, p, strlen(p) + 1); apache_was_here = 1; } + /* ignore query string if sent by Apache (RewriteRule) */ + p = strchr(env_script_filename, '?'); + if (p) { + *p =0; + } } if (CGIG(fix_pathinfo)) { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php