Description
Use of the apache RewriteRule will display the wrong page or a MissingPage with an option to create a new page instead of the wanted page under certain conditions.
Steps to reproduce
- On a non-unix system running Apache, add a rewrite rule similar to the following:
RewriteRule (^/AnyThing$) /mywiki/MyPage [L,PT]
Example
With the example rule above, Moin tries to display mywiki/AnyThing instead of mywiki/MyPage.
Component selection
- request.py
Details
MoinMoin Version |
1.5.8 |
OS and Version |
Windows/Vista |
Python Version |
2.5.1 |
Server Setup |
Apache |
Server Details |
Mod_python |
Language you are using the wiki in (set in the browser/UserPreferences) |
English |
Workaround
I think the problem is in request.py near line 444. Using the example RewriteRule above, the environment will have path_info=/MyPage and request_uri=/AnyThing. The if-true block below sets self.path_info based upon the value of self.request_uri instead of self.page_info. The elif block uses self.page_info for a similar operation.
1 # Fix path_info
2 if os.name != 'posix' and self.request_uri != '':
3 # Try to recreate path_info from request_uri.
4 import urlparse
5 scriptAndPath = urlparse.urlparse(self.request_uri)[2]
6 path = scriptAndPath.replace(self.script_name, '', 1)
7 self.path_info = wikiutil.url_unquote(path, want_unicode=False)
8 elif os.name == 'nt':
9 # Recode path_info to utf-8
10 path = wikiutil.decodeWindowsPath(self.path_info)
11 self.path_info = path.encode("utf-8")
12
13 # Fix bug in IIS/4.0 when path_info contain script_name
14 if self.path_info.startswith(self.script_name):
15 self.path_info = self.path_info[len(self.script_name):]
The changes below work for me. Three lines were changed -- request_uri replaced with path_info.
1 # Fix path_info
2 if os.name != 'posix' and self.path_info != '':
3 # Try to recreate path_info from path_info.
4 import urlparse
5 scriptAndPath = urlparse.urlparse(self.path_info)[2]
6 path = scriptAndPath.replace(self.script_name, '', 1)
7 self.path_info = wikiutil.url_unquote(path, want_unicode=False)
8 elif os.name == 'nt':
9 # Recode path_info to utf-8
10 path = wikiutil.decodeWindowsPath(self.path_info)
11 self.path_info = path.encode("utf-8")
12
13 # Fix bug in IIS/4.0 when path_info contain script_name
14 if self.path_info.startswith(self.script_name):
15 self.path_info = self.path_info[len(self.script_name):]
Discussion
Probably not a MoinMoin bug, see http://issues.apache.org/bugzilla/show_bug.cgi?id=34602
- I clarified the description, there are no escapes in the urls I am using. I do not think the Apache bug applies.
I guess this patch might make more troubles than it would solve. It had a reason we use request_uri there (if it is present) and changing it to path_info makes it pointless (we need this hack for broken apache on win32).
I defer to your judgement because my suggested changes are rather curious code. My only defense is the starting code is curious too :-). Since I spent a long day getting to this point, here is a bit of additional documentation in case someone with a broken apache on win32 is willing to test or wants to use a RewriteRule.
The path_info environment variable for the cgi standard is documented at:
The request_uri is not part of the cgi standard. I could not find clear Apache documentation on the difference between the two variables. What I did find was something that seemed to dismiss path_info as "extra" path info and the request_uri being the "real" path info. I found that in the case of the RewriteRule, request_uri contains the browser submitted data, path_info contains the new "rewritten" page name. In other cases, path_info is the page name, request_uri contains the full path and the query string (if any).
To get a trace of the environment variables in action under Moin 1.5.8, modify request.py as follows:
uncomment the line containing 'request_uri', near line 1398
- review the choice of output filenames near line 1418
uncomment the line containing self.debugEnvironment(env) near line 383
- save and restart Apache
The following is an edited log with a few sample transactions (using the unpatched 1.5.8 code). Lines preceded by --- are my comments. Each page request has a Request Attributes + Environment pair. mywiki name is drawiki.
--- request a page /AnyThing - a RewriteRule converts it to /drawiki/MyPage --- the "bug" is path_info is overlaid with the value /Anything but in the Environment it has the value /MyPage Request Attributes path_info = '/AnyThing' query_string = '' request_method = 'GET' request_uri = '/AnyThing' script_name = '/drawiki' Enviroment COMSPEC = 'C:\\Windows\\system32\\cmd.exe' DOCUMENT_ROOT = 'C:/home/web/static' GATEWAY_INTERFACE = 'CGI/1.1' HTTP_ACCEPT = 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5' HTTP_ACCEPT_CHARSET = 'ISO-8859-1,utf-8;q=0.7,*;q=0.7' HTTP_ACCEPT_ENCODING = 'gzip,deflate' HTTP_ACCEPT_LANGUAGE = 'en-us,en;q=0.5' HTTP_CACHE_CONTROL = 'max-age=0' HTTP_CONNECTION = 'keep-alive' HTTP_COOKIE = 'dra=xxxx; MOIN_ID=xxxx; DRA_DOMAIN=xxxx; MOIN_ID=xxxx' HTTP_HOST = 'jaguar.digitalrockart.org' HTTP_KEEP_ALIVE = '300' HTTP_USER_AGENT = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6' PATH = 'C:\\Python25\\;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Program Files (x86)\\Common Files\\GTK\\2.0\\bin;C:\\cygwin\\bin;C:\\Program Files (x86)\\HTMLDOC\\' PATHEXT = '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.py;.pyw' PATH_INFO = '/MyPage' PATH_TRANSLATED = 'C:\\home\\web\\static\\MyPage' QUERY_STRING = '' REMOTE_ADDR = '127.0.0.1' REMOTE_PORT = '52209' REQUEST_METHOD = 'GET' REQUEST_URI = '/AnyThing' SCRIPT_FILENAME = 'C:/home/web/static/drawiki' SCRIPT_NAME = '/drawiki' SCRIPT_URI = 'http://jaguar.digitalrockart.org/AnyThing' SCRIPT_URL = '/AnyThing' SERVER_ADDR = '127.0.0.1' SERVER_ADMIN = 'digitalrockart@yahoo.com' SERVER_NAME = 'jaguar.digitalrockart.org' SERVER_PORT = '80' SERVER_PROTOCOL = 'HTTP/1.1' SERVER_SIGNATURE = '' SERVER_SOFTWARE = 'Apache/2.2.4 (Win32) mod_python/3.3.1 Python/2.5.1' SystemRoot = 'C:\\Windows' WINDIR = 'C:\\Windows' --- request the /Frontpage Request Attributes path_info = '/FrontPage' query_string = '' request_method = 'GET' request_uri = '/drawiki/FrontPage' script_name = '/drawiki' Enviroment COMSPEC = 'C:\\Windows\\system32\\cmd.exe' DOCUMENT_ROOT = 'C:/home/web/static' GATEWAY_INTERFACE = 'CGI/1.1' HTTP_ACCEPT = 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5' HTTP_ACCEPT_CHARSET = 'ISO-8859-1,utf-8;q=0.7,*;q=0.7' HTTP_ACCEPT_ENCODING = 'gzip,deflate' HTTP_ACCEPT_LANGUAGE = 'en-us,en;q=0.5' HTTP_CONNECTION = 'keep-alive' HTTP_COOKIE = 'MOIN_ID=xxxx; dra=xxxx; MOIN_ID=xxxx; DRA_DOMAIN=xxxx; MOIN_ID=xxxx' HTTP_HOST = 'jaguar.digitalrockart.org' HTTP_KEEP_ALIVE = '300' HTTP_USER_AGENT = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6' PATH = 'C:\\Python25\\;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Program Files (x86)\\Common Files\\GTK\\2.0\\bin;C:\\cygwin\\bin;C:\\Program Files (x86)\\HTMLDOC\\' PATHEXT = '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.py;.pyw' PATH_INFO = '/FrontPage' PATH_TRANSLATED = 'C:\\home\\web\\static\\FrontPage' QUERY_STRING = '' REMOTE_ADDR = '127.0.0.1' REMOTE_PORT = '52213' REQUEST_METHOD = 'GET' REQUEST_URI = '/drawiki/FrontPage' SCRIPT_FILENAME = 'C:/home/web/static/drawiki' SCRIPT_NAME = '/drawiki' SCRIPT_URI = 'http://jaguar.digitalrockart.org/drawiki/FrontPage' SCRIPT_URL = '/drawiki/FrontPage' SERVER_ADDR = '127.0.0.1' SERVER_ADMIN = 'digitalrockart@yahoo.com' SERVER_NAME = 'jaguar.digitalrockart.org' SERVER_PORT = '80' SERVER_PROTOCOL = 'HTTP/1.1' SERVER_SIGNATURE = '' SERVER_SOFTWARE = 'Apache/2.2.4 (Win32) mod_python/3.3.1 Python/2.5.1' SystemRoot = 'C:\\Windows' WINDIR = 'C:\\Windows' --- edit the Frontpage Request Attributes path_info = '/FrontPage' query_string = 'action=edit&editor=text' request_method = 'GET' request_uri = '/drawiki/FrontPage?action=edit&editor=text' script_name = '/drawiki' Enviroment COMSPEC = 'C:\\Windows\\system32\\cmd.exe' DOCUMENT_ROOT = 'C:/home/web/static' GATEWAY_INTERFACE = 'CGI/1.1' HTTP_ACCEPT = 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5' HTTP_ACCEPT_CHARSET = 'ISO-8859-1,utf-8;q=0.7,*;q=0.7' HTTP_ACCEPT_ENCODING = 'gzip,deflate' HTTP_ACCEPT_LANGUAGE = 'en-us,en;q=0.5' HTTP_CONNECTION = 'keep-alive' HTTP_COOKIE = 'MOIN_ID=xxxx; dra=xxxx; MOIN_ID=xxxx; DRA_DOMAIN=xxxx; MOIN_ID=xxxx' HTTP_HOST = 'jaguar.digitalrockart.org' HTTP_KEEP_ALIVE = '300' HTTP_REFERER = 'http://jaguar.digitalrockart.org/drawiki/FrontPage' HTTP_USER_AGENT = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6' PATH = 'C:\\Python25\\;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Program Files (x86)\\Common Files\\GTK\\2.0\\bin;C:\\cygwin\\bin;C:\\Program Files (x86)\\HTMLDOC\\' PATHEXT = '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.py;.pyw' PATH_INFO = '/FrontPage' PATH_TRANSLATED = 'C:\\home\\web\\static\\FrontPage' QUERY_STRING = 'action=edit&editor=text' REMOTE_ADDR = '127.0.0.1' REMOTE_PORT = '52213' REQUEST_METHOD = 'GET' REQUEST_URI = '/drawiki/FrontPage?action=edit&editor=text' SCRIPT_FILENAME = 'C:/home/web/static/drawiki' SCRIPT_NAME = '/drawiki' SCRIPT_URI = 'http://jaguar.digitalrockart.org/drawiki/FrontPage' SCRIPT_URL = '/drawiki/FrontPage' SERVER_ADDR = '127.0.0.1' SERVER_ADMIN = 'digitalrockart@yahoo.com' SERVER_NAME = 'jaguar.digitalrockart.org' SERVER_PORT = '80' SERVER_PROTOCOL = 'HTTP/1.1' SERVER_SIGNATURE = '' SERVER_SOFTWARE = 'Apache/2.2.4 (Win32) mod_python/3.3.1 Python/2.5.1' SystemRoot = 'C:\\Windows' WINDIR = 'C:\\Windows' --- preview the FrontPage Request Attributes path_info = '/FrontPage' query_string = '' request_method = 'POST' request_uri = '/drawiki/FrontPage' script_name = '/drawiki' Enviroment COMSPEC = 'C:\\Windows\\system32\\cmd.exe' CONTENT_LENGTH = '3471' CONTENT_TYPE = 'application/x-www-form-urlencoded' DOCUMENT_ROOT = 'C:/home/web/static' GATEWAY_INTERFACE = 'CGI/1.1' HTTP_ACCEPT = 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5' HTTP_ACCEPT_CHARSET = 'ISO-8859-1,utf-8;q=0.7,*;q=0.7' HTTP_ACCEPT_ENCODING = 'gzip,deflate' HTTP_ACCEPT_LANGUAGE = 'en-us,en;q=0.5' HTTP_CONNECTION = 'keep-alive' HTTP_COOKIE = 'MOIN_ID=xxxx; dra=xxxx; MOIN_ID=xxxx; DRA_DOMAIN=xxxx; MOIN_ID=xxxx' HTTP_HOST = 'jaguar.digitalrockart.org' HTTP_KEEP_ALIVE = '300' HTTP_REFERER = 'http://jaguar.digitalrockart.org/drawiki/FrontPage?action=edit&editor=text' HTTP_USER_AGENT = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6' PATH = 'C:\\Python25\\;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Program Files (x86)\\Common Files\\GTK\\2.0\\bin;C:\\cygwin\\bin;C:\\Program Files (x86)\\HTMLDOC\\' PATHEXT = '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.py;.pyw' PATH_INFO = '/FrontPage' PATH_TRANSLATED = 'C:\\home\\web\\static\\FrontPage' QUERY_STRING = '' REMOTE_ADDR = '127.0.0.1' REMOTE_PORT = '52225' REQUEST_METHOD = 'POST' REQUEST_URI = '/drawiki/FrontPage' SCRIPT_FILENAME = 'C:/home/web/static/drawiki' SCRIPT_NAME = '/drawiki' SCRIPT_URI = 'http://jaguar.digitalrockart.org/drawiki/FrontPage' SCRIPT_URL = '/drawiki/FrontPage' SERVER_ADDR = '127.0.0.1' SERVER_ADMIN = 'digitalrockart@yahoo.com' SERVER_NAME = 'jaguar.digitalrockart.org' SERVER_PORT = '80' SERVER_PROTOCOL = 'HTTP/1.1' SERVER_SIGNATURE = '' SERVER_SOFTWARE = 'Apache/2.2.4 (Win32) mod_python/3.3.1 Python/2.5.1' SystemRoot = 'C:\\Windows' WINDIR = 'C:\\Windows' --- save the FrontPage Request Attributes path_info = '/FrontPage' query_string = '' request_method = 'POST' request_uri = '/drawiki/FrontPage' script_name = '/drawiki' Enviroment COMSPEC = 'C:\\Windows\\system32\\cmd.exe' CONTENT_LENGTH = '3473' CONTENT_TYPE = 'application/x-www-form-urlencoded' DOCUMENT_ROOT = 'C:/home/web/static' GATEWAY_INTERFACE = 'CGI/1.1' HTTP_ACCEPT = 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5' HTTP_ACCEPT_CHARSET = 'ISO-8859-1,utf-8;q=0.7,*;q=0.7' HTTP_ACCEPT_ENCODING = 'gzip,deflate' HTTP_ACCEPT_LANGUAGE = 'en-us,en;q=0.5' HTTP_CONNECTION = 'keep-alive' HTTP_COOKIE = 'MOIN_ID=xxxx; dra=xxxx; MOIN_ID=xxxx; DRA_DOMAIN=xxxx; MOIN_ID=xxxx' HTTP_HOST = 'jaguar.digitalrockart.org' HTTP_KEEP_ALIVE = '300' HTTP_REFERER = 'http://jaguar.digitalrockart.org/drawiki/FrontPage' HTTP_USER_AGENT = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6' PATH = 'C:\\Python25\\;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Program Files (x86)\\Common Files\\GTK\\2.0\\bin;C:\\cygwin\\bin;C:\\Program Files (x86)\\HTMLDOC\\' PATHEXT = '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.py;.pyw' PATH_INFO = '/FrontPage' PATH_TRANSLATED = 'C:\\home\\web\\static\\FrontPage' QUERY_STRING = '' REMOTE_ADDR = '127.0.0.1' REMOTE_PORT = '52228' REQUEST_METHOD = 'POST' REQUEST_URI = '/drawiki/FrontPage' SCRIPT_FILENAME = 'C:/home/web/static/drawiki' SCRIPT_NAME = '/drawiki' SCRIPT_URI = 'http://jaguar.digitalrockart.org/drawiki/FrontPage' SCRIPT_URL = '/drawiki/FrontPage' SERVER_ADDR = '127.0.0.1' SERVER_ADMIN = 'digitalrockart@yahoo.com' SERVER_NAME = 'jaguar.digitalrockart.org' SERVER_PORT = '80' SERVER_PROTOCOL = 'HTTP/1.1' SERVER_SIGNATURE = '' SERVER_SOFTWARE = 'Apache/2.2.4 (Win32) mod_python/3.3.1 Python/2.5.1' SystemRoot = 'C:\\Windows' WINDIR = 'C:\\Windows' --- click the "Clear Message" link on the FrontPage Request Attributes path_info = '/FrontPage' query_string = 'action=show' request_method = 'GET' request_uri = '/drawiki/FrontPage?action=show' script_name = '/drawiki' Enviroment COMSPEC = 'C:\\Windows\\system32\\cmd.exe' DOCUMENT_ROOT = 'C:/home/web/static' GATEWAY_INTERFACE = 'CGI/1.1' HTTP_ACCEPT = 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5' HTTP_ACCEPT_CHARSET = 'ISO-8859-1,utf-8;q=0.7,*;q=0.7' HTTP_ACCEPT_ENCODING = 'gzip,deflate' HTTP_ACCEPT_LANGUAGE = 'en-us,en;q=0.5' HTTP_CONNECTION = 'keep-alive' HTTP_COOKIE = 'MOIN_ID=xxxx; dra=1187450934; MOIN_ID=xxxx; DRA_DOMAIN=xxxx; MOIN_ID=xxxx' HTTP_HOST = 'jaguar.digitalrockart.org' HTTP_KEEP_ALIVE = '300' HTTP_REFERER = 'http://jaguar.digitalrockart.org/drawiki/FrontPage' HTTP_USER_AGENT = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6' PATH = 'C:\\Python25\\;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Program Files (x86)\\Common Files\\GTK\\2.0\\bin;C:\\cygwin\\bin;C:\\Program Files (x86)\\HTMLDOC\\' PATHEXT = '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.py;.pyw' PATH_INFO = '/FrontPage' PATH_TRANSLATED = 'C:\\home\\web\\static\\FrontPage' QUERY_STRING = 'action=show' REMOTE_ADDR = '127.0.0.1' REMOTE_PORT = '52228' REQUEST_METHOD = 'GET' REQUEST_URI = '/drawiki/FrontPage?action=show' SCRIPT_FILENAME = 'C:/home/web/static/drawiki' SCRIPT_NAME = '/drawiki' SCRIPT_URI = 'http://jaguar.digitalrockart.org/drawiki/FrontPage' SCRIPT_URL = '/drawiki/FrontPage' SERVER_ADDR = '127.0.0.1' SERVER_ADMIN = 'digitalrockart@yahoo.com' SERVER_NAME = 'jaguar.digitalrockart.org' SERVER_PORT = '80' SERVER_PROTOCOL = 'HTTP/1.1' SERVER_SIGNATURE = '' SERVER_SOFTWARE = 'Apache/2.2.4 (Win32) mod_python/3.3.1 Python/2.5.1' SystemRoot = 'C:\\Windows' WINDIR = 'C:\\Windows' --- get with a subpage Request Attributes path_info = '/SurveyReport/RefNbr0062' query_string = '' request_method = 'GET' request_uri = '/drawiki/SurveyReport/RefNbr0062' script_name = '/drawiki' Enviroment COMSPEC = 'C:\\Windows\\system32\\cmd.exe' DOCUMENT_ROOT = 'C:/home/web/static' GATEWAY_INTERFACE = 'CGI/1.1' HTTP_ACCEPT = 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5' HTTP_ACCEPT_CHARSET = 'ISO-8859-1,utf-8;q=0.7,*;q=0.7' HTTP_ACCEPT_ENCODING = 'gzip,deflate' HTTP_ACCEPT_LANGUAGE = 'en-us,en;q=0.5' HTTP_CONNECTION = 'keep-alive' HTTP_COOKIE = 'MOIN_ID=xxxx; dra=xxxx; _SID_=xxxx; MOIN_ID=xxxx; DRA_DOMAIN=xxxx; MOIN_ID=xxxx' HTTP_HOST = 'jaguar.digitalrockart.org' HTTP_KEEP_ALIVE = '300' HTTP_REFERER = 'http://jaguar.digitalrockart.org/drawiki/FrontPage' HTTP_USER_AGENT = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6' PATH = 'C:\\Python25\\;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Program Files (x86)\\Common Files\\GTK\\2.0\\bin;C:\\cygwin\\bin;C:\\Program Files (x86)\\HTMLDOC\\' PATHEXT = '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.py;.pyw' PATH_INFO = '/SurveyReport/RefNbr0062' PATH_TRANSLATED = 'C:\\home\\web\\static\\SurveyReport\\RefNbr0062' QUERY_STRING = '' REMOTE_ADDR = '127.0.0.1' REMOTE_PORT = '49376' REQUEST_METHOD = 'GET' REQUEST_URI = '/drawiki/SurveyReport/RefNbr0062' SCRIPT_FILENAME = 'C:/home/web/static/drawiki' SCRIPT_NAME = '/drawiki' SCRIPT_URI = 'http://jaguar.digitalrockart.org/drawiki/SurveyReport/RefNbr0062' SCRIPT_URL = '/drawiki/SurveyReport/RefNbr0062' SERVER_ADDR = '127.0.0.1' SERVER_ADMIN = 'digitalrockart@yahoo.com' SERVER_NAME = 'jaguar.digitalrockart.org' SERVER_PORT = '80' SERVER_PROTOCOL = 'HTTP/1.1' SERVER_SIGNATURE = '' SERVER_SOFTWARE = 'Apache/2.2.4 (Win32) mod_python/3.3.1 Python/2.5.1' SystemRoot = 'C:\\Windows' WINDIR = 'C:\\Windows'
Plan
- Priority:
- Assigned to:
- Status: