From b6debecc34c49320db83e6b117fe72cb1bce5298 Mon Sep 17 00:00:00 2001 From: Jim Jagielski Date: Fri, 4 Mar 2011 18:31:17 +0000 Subject: [PATCH] Fix/workaround for BUGZ PR 50851. By default, mod_proxy_fcgi with not create PATH_INFO, unless specifically told to. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1078089 13f79535-47bb-0310-9956-ffa450edef68 --- docs/manual/mod/mod_proxy_fcgi.xml | 17 +++++++++++++++++ modules/proxy/mod_proxy_fcgi.c | 8 +++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/docs/manual/mod/mod_proxy_fcgi.xml b/docs/manual/mod/mod_proxy_fcgi.xml index 6ddcfd7751f..150c44f32b2 100644 --- a/docs/manual/mod/mod_proxy_fcgi.xml +++ b/docs/manual/mod/mod_proxy_fcgi.xml @@ -96,4 +96,21 @@ +
Environment Variables +

In addition to the configuration directives that control the + behaviour of mod_proxy, there are a number of + environment variables that control the FCGI protocol + provider:

+
+
proxy-fcgi-pathinfo
+
By default mod_proxy_fcgi will neither create + nor export the PATH_INFO environment variable. This allows + the backend FCGI server to correctly determine SCRIPT_NAME + and Script-URI and be compliant with RFC 3875 section 3.3. + If instead you need mod_proxy_fcgi to generate + a "best guess" for PATH_INFO, set this env-var. + This is a workaround for a bug in some FCGI implementations.
+
+
+ diff --git a/modules/proxy/mod_proxy_fcgi.c b/modules/proxy/mod_proxy_fcgi.c index 7d1b41e2d35..6ebd6d2a85e 100644 --- a/modules/proxy/mod_proxy_fcgi.c +++ b/modules/proxy/mod_proxy_fcgi.c @@ -119,10 +119,12 @@ static int proxy_fcgi_canon(request_rec *r, char *url) ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, "proxy: FCGI: set r->filename to %s", r->filename); - r->path_info = apr_pstrcat(r->pool, "/", path, NULL); + if (apr_table_get(r->subprocess_env, "proxy-fcgi-pathinfo")) { + r->path_info = apr_pstrcat(r->pool, "/", path, NULL); - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "proxy: FCGI: set r->path_info to %s", r->path_info); + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, + "proxy: FCGI: set r->path_info to %s", r->path_info); + } return OK; } -- 2.47.2