summaryrefslogtreecommitdiff
path: root/sapi
diff options
context:
space:
mode:
authorRemi Collet <remi@php.net>2013-04-30 08:55:18 +0200
committerRemi Collet <remi@php.net>2013-04-30 08:55:18 +0200
commit4a92ae34011ad2246500f27469f378b66d832976 (patch)
treed2d5e1c4c92b4b9f9a9a3e2169eb7f8e2aa8d92a /sapi
parent4e773c1b92c5db328fbbca36e566a1c76957be63 (diff)
downloadphp-git-4a92ae34011ad2246500f27469f378b66d832976.tar.gz
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'
Diffstat (limited to 'sapi')
-rw-r--r--sapi/fpm/fpm/fpm_main.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sapi/fpm/fpm/fpm_main.c b/sapi/fpm/fpm/fpm_main.c
index 61088c465b..28ed0be994 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)) {