diff --git a/src/Ui/UiRequest.py b/src/Ui/UiRequest.py index 6402c7b8..547bc3e3 100644 --- a/src/Ui/UiRequest.py +++ b/src/Ui/UiRequest.py @@ -394,10 +394,11 @@ class UiRequest(object): if ".." in path: raise Exception("Invalid path") - match = re.match("/media/(?P
[A-Za-z0-9\._-]+)/(?P.*)", path) + match = re.match("/media/(?P
[A-Za-z0-9\._-]+)(?P/.*|$)", path) if match: path_parts = match.groupdict() path_parts["request_address"] = path_parts["address"] # Original request address (for Merger sites) + path_parts["inner_path"] = path_parts["inner_path"].lstrip("/") return path_parts else: return None @@ -437,7 +438,10 @@ class UiRequest(object): if os.path.isfile(file_path): # File exists return self.actionFile(file_path, header_length=header_length, header_noscript=header_noscript) elif os.path.isdir(file_path): # If this is actually a folder, add "/" and redirect - return self.actionRedirect("./{0}/".format(path_parts["inner_path"].split("/")[-1])) + if path_parts["inner_path"]: + return self.actionRedirect("./%s/" % path_parts["inner_path"].split("/")[-1]) + else: + return self.actionRedirect("./%s/" % path_parts["address"]) else: # File not exists, try to download if address not in SiteManager.site_manager.sites: # Only in case if site already started downloading return self.error404(path_parts["inner_path"])