diff --git a/Lib/SimpleHTTPServer.py b/Lib/SimpleHTTPServer.py index fae551a5659..86c669ea409 100644 --- a/Lib/SimpleHTTPServer.py +++ b/Lib/SimpleHTTPServer.py @@ -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): diff --git a/Misc/NEWS b/Misc/NEWS index dca49c1bba3..897346b5485 100644 --- 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.