Anonymous avatar Anonymous committed ebdc33d

Fixed ticket #29

Comments (0)

Files changed (1)

     
     if not newUrl.startswith('http://') and not newUrl.startswith('https://'):
         # If newUrl is not canonical, we must make it canonical
-        if newUrl[0] == '/':
-            # URL was absolute: we just add the request.base in front of it
+        if newUrl.startswith('/'):
+            # newUrl was absolute:
+            # we just add request.base in front of it
             newUrl = cpg.request.base + newUrl
         else:
-            # URL was relative
-            if cpg.request.browserUrl == cpg.request.base:
-                # browserUrl is request.base
-                newUrl = cpg.request.base + '/' + newUrl
-            else:
-                newUrl = cpg.request.browserUrl[:i+1] + newUrl
+            # newUrl was relative:
+            # we remove the last bit from browserUrl and add newUrl to it
+            i = cpg.request.browserUrl.rfind('/')
+            newUrl = cpg.request.browserUrl[:i+1] + newUrl
     cpg.response.headerMap['Status'] = 302
     cpg.response.headerMap['Location'] = newUrl
     return ""
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.