[Python-checkins] r53139 - python/trunk/Lib/CGIHTTPServer.py

andrew.kuchling python-checkins at python.org
Fri Dec 22 14:25:03 CET 2006


Author: andrew.kuchling
Date: Fri Dec 22 14:25:02 2006
New Revision: 53139
Modified:
 python/trunk/Lib/CGIHTTPServer.py
Log:
[Bug #737202; fix from Titus Brown] Make CGIHTTPServer work for scripts in sub-directories
Modified: python/trunk/Lib/CGIHTTPServer.py
==============================================================================
--- python/trunk/Lib/CGIHTTPServer.py	(original)
+++ python/trunk/Lib/CGIHTTPServer.py	Fri Dec 22 14:25:02 2006
@@ -105,17 +105,36 @@
 
 def run_cgi(self):
 """Execute a CGI script."""
+ path = self.path
 dir, rest = self.cgi_info
+ 
+ i = path.find('/', len(dir) + 1)
+ while i >= 0:
+ nextdir = path[:i]
+ nextrest = path[i+1:]
+
+ scriptdir = self.translate_path(nextdir)
+ if os.path.isdir(scriptdir):
+ dir, rest = nextdir, nextrest
+ i = path.find('/', len(dir) + 1)
+ else:
+ break
+
+ # find an explicit query string, if present.
 i = rest.rfind('?')
 if i >= 0:
 rest, query = rest[:i], rest[i+1:]
 else:
 query = ''
+
+ # dissect the part after the directory name into a script name &
+ # a possible additional path, to be stored in PATH_INFO.
 i = rest.find('/')
 if i >= 0:
 script, rest = rest[:i], rest[i:]
 else:
 script, rest = rest, ''
+
 scriptname = dir + '/' + script
 scriptfile = self.translate_path(scriptname)
 if not os.path.exists(scriptfile):


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /