summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Zuelke <dzuelke@gmail.com>2014-08-09 08:14:23 +0200
committerDavid Zuelke <dzuelke@gmail.com>2014-08-09 08:14:23 +0200
commitd73d44c23709df5b6bebf347cd98088ddd6c8091 (patch)
treed589066d510894b34844d15edbe3b2f2bda9ba7e
parentcd63740db780569c0f3f37aec13062c8f765abed (diff)
downloadphp-git-d73d44c23709df5b6bebf347cd98088ddd6c8091.tar.gz
Revert "Merge branch 'pull-request/694' into PHP-5.6"
This reverts commit d96de86b5b4ca8adf63ac6e07ab57fc2ec9d87f4, reversing changes made to b1e32a4f7a6c2351a2006c2c1b9085336ba513e4.
-rw-r--r--sapi/fpm/fpm/fpm_main.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/sapi/fpm/fpm/fpm_main.c b/sapi/fpm/fpm/fpm_main.c
index 2ee1456340..93090832f5 100644
--- a/sapi/fpm/fpm/fpm_main.c
+++ b/sapi/fpm/fpm/fpm_main.c
@@ -1148,6 +1148,19 @@ static void init_request_info(TSRMLS_D)
TRANSLATE_SLASHES(env_document_root);
}
+ if (env_path_translated != NULL && env_redirect_url != NULL &&
+ env_path_translated != script_path_translated &&
+ strcmp(env_path_translated, script_path_translated) != 0) {
+ /*
+ * pretty much apache specific. If we have a redirect_url
+ * then our script_filename and script_name point to the
+ * php executable
+ */
+ script_path_translated = env_path_translated;
+ /* we correct SCRIPT_NAME now in case we don't have PATH_INFO */
+ env_script_name = env_redirect_url;
+ }
+
#ifdef __riscos__
/* Convert path to unix format*/
__riscosify_control |= __RISCOSIFY_DONT_CHECK_DIR;
@@ -1316,7 +1329,7 @@ static void init_request_info(TSRMLS_D)
efree(pt);
}
} else {
- /* make sure original values are remembered in ORIG_ copies if we've changed them */
+ /* make sure path_info/translated are empty */
if (!orig_script_filename ||
(script_path_translated != orig_script_filename &&
strcmp(script_path_translated, orig_script_filename) != 0)) {
@@ -1325,6 +1338,16 @@ static void init_request_info(TSRMLS_D)
}
script_path_translated = _sapi_cgibin_putenv("SCRIPT_FILENAME", script_path_translated TSRMLS_CC);
}
+ if (env_redirect_url) {
+ if (orig_path_info) {
+ _sapi_cgibin_putenv("ORIG_PATH_INFO", orig_path_info TSRMLS_CC);
+ _sapi_cgibin_putenv("PATH_INFO", NULL TSRMLS_CC);
+ }
+ if (orig_path_translated) {
+ _sapi_cgibin_putenv("ORIG_PATH_TRANSLATED", orig_path_translated TSRMLS_CC);
+ _sapi_cgibin_putenv("PATH_TRANSLATED", NULL TSRMLS_CC);
+ }
+ }
if (env_script_name != orig_script_name) {
if (orig_script_name) {
_sapi_cgibin_putenv("ORIG_SCRIPT_NAME", orig_script_name TSRMLS_CC);