Bad REQUEST_URI not corrected under some IIS7 configs
-
In some IIS7 configurations, the REQUEST_URI value is not correct (without query string) but the wp_fix_server_vars function doesn’t correct it because php_sapi_name function returns ‘cgi-fcgi’!
To correct this bug, wp_fix_server_vars function should contain:
if (!empty($_SERVER[‘QUERY_STRING’]) && !strpos($_SERVER[‘REQUEST_URI’], ‘?’, 0))
$_SERVER[‘REQUEST_URI’] .= ‘?’ . $_SERVER[‘QUERY_STRING’];Dump of $_SERVER var:
SERVER_SOFTWARE=Microsoft-IIS/7.5
REQUEST_URI=/index.php
_FCGI_X_PIPE_=\\.\pipe\IISFCGI-f5ef931d-f5a9-4ae3-9f07-c523a695bd33
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Windows\system32\config\systemprofile\AppData\Roaming
APP_POOL_CONFIG=C:\inetpub\temp\apppools\SP0.x86.Net4.0\SP0.x86.Net4.0.config
APP_POOL_ID=SP0.x86.Net4.0
CommonProgramFiles=C:\Program Files (x86)\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
COMPUTERNAME=WL36
ComSpec=C:\Windows\system32\cmd.exe
FP_NO_HOST_CHECK=NO
LOCALAPPDATA=C:\Windows\system32\config\systemprofile\AppData\Local
NUMBER_OF_PROCESSORS=4
OS=Windows_NT
Path=C:\Perl\site\bin;C:\Perl\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ExchangeMapi\;C:\Tools\dll\shibboleth-sp\bin\;C:\Tools\dll\shibboleth-sp\lib\;C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_ARCHITEW6432=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 44 Stepping 2, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=2c02
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files (x86)
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files
PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
PUBLIC=C:\Users\Public
SHIBSP_PREFIX=c:/Tools/dll/shibboleth-sp
SHIBSP_SCHEMAS=C:\Tools\dll\shibboleth-sp\share\xml\shibboleth\catalog.xml;C:\Tools\dll\shibboleth-sp\share\xml\xmltooling\catalog.xml;C:\Tools\dll\shibboleth-sp\share\xml\opensaml\saml20-catalog.xml;C:\Tools\dll\shibboleth-sp\share\xml\opensaml\saml11-catalog.xml
SystemDrive=C:
SystemRoot=C:\Windows
TEMP=c:\temp
TMP=c:\temp
USERDOMAIN=WEBLAND
USERNAME=WL36$
USERPROFILE=C:\Windows\system32\config\systemprofile
windir=C:\Windows
FCGI_ROLE=RESPONDER
HTTP_CACHE_CONTROL=max-age=0
HTTP_CONNECTION=keep-alive
HTTP_CONTENT_LENGTH=0
HTTP_ACCEPT=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_ACCEPT_ENCODING=gzip, deflate
HTTP_ACCEPT_LANGUAGE=fr-fr
HTTP_COOKIE=wp-settings-1=editor%3Dhtml%26hidetb%3D1; wp-settings-time-1=1339323159; PHPSESSID=32tl96nkg5hmqjljruub6hmg83; wordpress_logged_in_d32aeaf956ae4de93f76b54f7a70a95b=admin%7C1339494132%7C0c75072f2032cf6d36447a191382dd46; wordpress_test_cookie=WP+Cookie+check; __utma=95421598.382239911.1338963302.1338963302.1339321324.2; __utmc=95421598; __utmz=95421598.1338963302.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
HTTP_HOST=www.swissoceanservices.com
HTTP_USER_AGENT=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2
HTTP_X_REQUEST_URI=/index.php
HTTP_X_REWRITE_URL=/index.php
HTTP_ORIGINAL_URL=/index.php
PHP_VER=5
IIS_UrlRewriteModule=7.1.0871.0
APPL_MD_PATH=/LM/W3SVC/208/ROOT
APPL_PHYSICAL_PATH=d:\www\www208\
AUTH_TYPE=
AUTH_PASSWORD=
AUTH_USER=
CERT_COOKIE=
CERT_FLAGS=
CERT_ISSUER=
CERT_SERIALNUMBER=
CERT_SUBJECT=
CONTENT_LENGTH=0
CONTENT_TYPE=
DOCUMENT_ROOT=d:/www/www208
GATEWAY_INTERFACE=CGI/1.1
HTTPS=off
HTTPS_KEYSIZE=
HTTPS_SECRETKEYSIZE=
HTTPS_SERVER_ISSUER=
HTTPS_SERVER_SUBJECT=
INSTANCE_ID=208
INSTANCE_NAME=WWW208
INSTANCE_META_PATH=/LM/W3SVC/208
LOCAL_ADDR=92.43.216.136
LOGON_USER=
PATH_TRANSLATED=d:\www\www208\index.php
QUERY_STRING=page_id=20
REMOTE_ADDR=88.209.93.213
REMOTE_HOST=88.209.93.213
REMOTE_PORT=56147
REMOTE_USER=
REQUEST_METHOD=GET
SCRIPT_FILENAME=d:\www\www208\index.php
SCRIPT_NAME=/index.php
SERVER_NAME=www.swissoceanservices.com
SERVER_PORT=80
SERVER_PORT_SECURE=0
SERVER_PROTOCOL=HTTP/1.1
URL=/index.php
ORIG_PATH_INFO=/index.php
PHP_SELF=/index.php
REQUEST_TIME=1339363070
- The topic ‘Bad REQUEST_URI not corrected under some IIS7 configs’ is closed to new replies.