]> granicus.if.org Git - python/commitdiff
[Patch #827559 from Chris Gonnerman] Make SimpleHTTPServer redirect when a directory...
authorAndrew M. Kuchling <amk@amk.ca>
Fri, 22 Dec 2006 19:08:41 +0000 (19:08 +0000)
committerAndrew M. Kuchling <amk@amk.ca>
Fri, 22 Dec 2006 19:08:41 +0000 (19:08 +0000)
Lib/SimpleHTTPServer.py
Misc/NEWS

index fae551a5659cecd3be5f7d8e182a2b27db767830..86c669ea409ed07b979a46bb75e39c6769136f02 100644 (file)
@@ -66,6 +66,12 @@ class SimpleHTTPRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
         path = self.translate_path(self.path)
         f = None
         if os.path.isdir(path):
+            if not self.path.endswith('/'):
+                # redirect browser - doing basically what apache does
+                self.send_response(301)
+                self.send_header("Location", self.path + "/")
+                self.end_headers()
+                return None
             for index in "index.html", "index.htm":
                 index = os.path.join(path, index)
                 if os.path.exists(index):
index dca49c1bba39ba5a1720e247f312479468f1895b..897346b54857aba45940b6023252218850c7ed9c 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -125,6 +125,10 @@ Library
 - Bug #737202: Make CGIHTTPServer work for scripts in subdirectories.
   Fix by Titus Brown.
 
+- Patch #827559: Make SimpleHTTPServer redirect when a directory URL
+  is missing the trailing slash, so that relative links work correctly.
+  Patch by Chris Gonnerman.
+
 - Patch #1608267: fix a race condition in os.makedirs() is the directory
   to be created is already there.