[Patch #827559 from Chris Gonnerman] Make SimpleHTTPServer redirect when a directory URL is missing the trailing slash; this lets relative links work.
diff --git a/Lib/SimpleHTTPServer.py b/Lib/SimpleHTTPServer.py
index fae551a..86c669e 100644
--- a/Lib/SimpleHTTPServer.py
+++ b/Lib/SimpleHTTPServer.py
@@ -66,6 +66,12 @@
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):
diff --git a/Misc/NEWS b/Misc/NEWS
index dca49c1..897346b 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -125,6 +125,10 @@
- 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.