From 0bcd1284ed9bcccc71953db79943977672e0ea93 Mon Sep 17 00:00:00 2001 From: Grzegorz Nosek Date: Thu, 3 Jun 2010 14:36:36 +0200 Subject: Use SCRIPT_FILENAME environment variable when available If present, it overrides DOCUMENT_ROOT and SCRIPT_NAME and prevents mangling of PATH_INFO. Should allow cleaner configs when script names don't come from request URIs directly. --- fcgiwrap.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'fcgiwrap.c') diff --git a/fcgiwrap.c b/fcgiwrap.c index 2df84bb..d62e37f 100644 --- a/fcgiwrap.c +++ b/fcgiwrap.c @@ -368,6 +368,10 @@ char *get_cgi_filename() /* and fixup environment */ int rf_len; char *pathinfo = NULL; + if ((p = getenv("SCRIPT_FILENAME"))) { + return strdup(p); + } + if ((p = getenv("DOCUMENT_ROOT"))) { docroot = p; docrootlen = strlen(p); @@ -495,7 +499,7 @@ static void handle_fcgi_request() filename = get_cgi_filename(); inherit_environment(); if (!filename) - error_403("Cannot get script name, are DOCUMENT_ROOT and SCRIPT_NAME set and is the script executable?", NULL); + error_403("Cannot get script name, are DOCUMENT_ROOT and SCRIPT_NAME (or SCRIPT_FILENAME) set and is the script executable?", NULL); last_slash = strrchr(filename, '/'); if (!last_slash) -- cgit v1.2.3