@@ -1148,6 +1148,22 @@ static void init_request_info(TSRMLS_D)
1148
1148
TRANSLATE_SLASHES (env_document_root );
1149
1149
}
1150
1150
1151
+ if (!apache_was_here && env_path_translated != NULL && env_redirect_url != NULL &&
1152
+ env_path_translated != script_path_translated &&
1153
+ strcmp (env_path_translated , script_path_translated ) != 0 ) {
1154
+ /*
1155
+ * pretty much apache specific. If we have a redirect_url
1156
+ * then our script_filename and script_name point to the
1157
+ * php executable
1158
+ * we don't want to do this for the new mod_proxy_fcgi approach,
1159
+ * where redirect_url may also exist but the below will break
1160
+ * with rewrites to PATH_INFO, hence the !apache_was_here check
1161
+ */
1162
+ script_path_translated = env_path_translated ;
1163
+ /* we correct SCRIPT_NAME now in case we don't have PATH_INFO */
1164
+ env_script_name = env_redirect_url ;
1165
+ }
1166
+
1151
1167
#ifdef __riscos__
1152
1168
/* Convert path to unix format*/
1153
1169
__riscosify_control |= __RISCOSIFY_DONT_CHECK_DIR ;
@@ -1325,6 +1341,18 @@ static void init_request_info(TSRMLS_D)
1325
1341
}
1326
1342
script_path_translated = _sapi_cgibin_putenv ("SCRIPT_FILENAME" , script_path_translated TSRMLS_CC );
1327
1343
}
1344
+ if (!apache_was_here && env_redirect_url ) {
1345
+ /* if we used PATH_TRANSLATED to work around Apache mod_fastcgi (but not mod_proxy_fcgi,
1346
+ * hence !apache_was_here) weirdness, strip info accordingly */
1347
+ if (orig_path_info ) {
1348
+ _sapi_cgibin_putenv ("ORIG_PATH_INFO" , orig_path_info TSRMLS_CC );
1349
+ _sapi_cgibin_putenv ("PATH_INFO" , NULL TSRMLS_CC );
1350
+ }
1351
+ if (orig_path_translated ) {
1352
+ _sapi_cgibin_putenv ("ORIG_PATH_TRANSLATED" , orig_path_translated TSRMLS_CC );
1353
+ _sapi_cgibin_putenv ("PATH_TRANSLATED" , NULL TSRMLS_CC );
1354
+ }
1355
+ }
1328
1356
if (env_script_name != orig_script_name ) {
1329
1357
if (orig_script_name ) {
1330
1358
_sapi_cgibin_putenv ("ORIG_SCRIPT_NAME" , orig_script_name TSRMLS_CC );
0 commit comments