I realize that when I change from embedded server to, for instance, CGI, some things must be adjusted. For example, I use TRequest.ScriptName to get the base path of my web. This seems OK for CGI but not for embedded server, because it's not set there. I even got almost totally different environment variables set!
CGI:
HTTP_HOST=localhost
HTTP_HOST=localhost
HTTP_CONNECTION=keep-alive
HTTP_REFERER=http://localhost/foj/foj.cgi/problem/browse HTTP_CACHE_CONTROL=max-age=0
HTTP_USER_AGENT=Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.91 Safari/534.30
HTTP_ACCEPT=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 HTTP_ACCEPT_ENCODING=gzip,deflate,sdch
HTTP_ACCEPT_LANGUAGE=en-US,en;q=0.8
HTTP_ACCEPT_CHARSET=ISO-8859-1,utf-8;q=0.7,*;q=0.3 PATH=... // cut down for brevity
SystemRoot=C:\WINDOWS
COMSPEC=C:\WINDOWS\system32\cmd.exe
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH WINDIR=C:\WINDOWS
SERVER_SIGNATURE=
SERVER_SOFTWARE=Apache
SERVER_NAME=localhost
SERVER_ADDR=127.0.0.1
SERVER_PORT=80
REMOTE_ADDR=127.0.0.1
DOCUMENT_ROOT=C:/UniServer/www
SERVER_ADMIN=admin at localhost
SCRIPT_FILENAME=C:/UniServer/www/foj/foj.cgi
REMOTE_PORT=2373
GATEWAY_INTERFACE=CGI/1.1
SERVER_PROTOCOL=HTTP/1.1
REQUEST_METHOD=GET
QUERY_STRING=
REQUEST_URI=/foj/foj.cgi/index/home
SCRIPT_NAME=/foj/foj.cgi
PATH_INFO=/index/home
Embedded server:
=::=::\
=::=::\
=C:=C:\UniServer\www\foj
=D:=D:\
ALLUSERSPROFILE=C:\Documents and Settings\All Users APPDATA=C:\Documents and Settings\Lele Dumbo\Application Data CLASSPATH=.
CLIENTNAME=Console
COLUMNS=80
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=LELEDOWS
ComSpec=C:\WINDOWS\system32\cmd.exe
CPLUS_INCLUDE_PATH=C:\gtk+\include;C:\Python26\include;C:\lua\include C_INCLUDE_PATH=C:\gtk+\include;C:\Python26\include;C:\lua\include;C:\perl\include EDITOR=C:\SciTE++\SciTE.exe
FP_NO_HOST_CHECK=NO
GOBO=C:\gobo
GRAPHVIZ_DOT=C:\graphviz\bin\dot.exe
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\Lele Dumbo
INCLUDE=C:\FASM\INCLUDE
JAVA_HOME=C:\Java
LC_MESSAGES=C
LIBRARY_PATH=C:\gtk+\lib;C:\Python26\libs;C:\lua\lib;C:\perl\lib LINES=24
LOGONSERVER=\\LELEDOWS
MOSMLLIB=C:\mosml\lib
MOZ_PLUGIN_PATH=C:\Program Files\SumatraPDF\
NUMBER_OF_PROCESSORS=2
OS=Windows_NT
Path=... // cut down for brevity
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 6 Stepping 5, GenuineIntel PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0605
ProgramFiles=C:\Program Files
QTDIR=C:\qt
RUBYOPT=-rubygems
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\DOCUME~1\LELEDU~1\LOCALS~1\Temp
TMP=C:\DOCUME~1\LELEDU~1\LOCALS~1\Temp
USERDOMAIN=LELEDOWS
USERNAME=Lele Dumbo
USERPROFILE=C:\Documents and Settings\Lele Dumbo
windir=C:\WINDOWS
The one from embedded server looks like my computer environment, while the CGI one seems to be set by the underlying web server (Apache in this case).
So, how can I get the base web path (like localhost:12000/executable-name) in embedded server? I need to do this because links to other parts of the website must be relative to it.
