diff libervia/server/pages.py @ 1476:c669b5bfb8a0

pages: fix args range in `getURL` + use `urljoin`: `urljoin` is used to have more adapter `/` management, and avoid a trailing one
author Goffi <goffi@goffi.org>
date Wed, 20 Oct 2021 17:17:21 +0200
parents b4cead3cea43
children 095e94ca6728
line wrap: on
line diff
--- a/libervia/server/pages.py	Wed Oct 20 17:15:40 2021 +0200
+++ b/libervia/server/pages.py	Wed Oct 20 17:17:21 2021 +0200
@@ -682,13 +682,13 @@
             #  we check for redirection
             redirect_data = self.pages_redirects[self.name]
             args_hash = tuple(args)
-            for limit in range(len(args) + 1):
+            for limit in range(len(args), -1, -1):
                 current_hash = args_hash[:limit]
                 if current_hash in redirect_data:
                     url_base = redirect_data[current_hash]
                     remaining = args[limit:]
                     remaining_url = "/".join(remaining)
-                    url = os.path.join("/", url_base, remaining_url)
+                    url = urllib.parse.urljoin(url_base, remaining_url)
                     break
             else:
                 url = os.path.join(self.url, *url_args)