aboutsummaryrefslogtreecommitdiffstats
path: root/lua/redirect_lower_url.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/redirect_lower_url.lua')
-rw-r--r--lua/redirect_lower_url.lua31
1 files changed, 31 insertions, 0 deletions
diff --git a/lua/redirect_lower_url.lua b/lua/redirect_lower_url.lua
new file mode 100644
index 0000000..74ffc30
--- /dev/null
+++ b/lua/redirect_lower_url.lua
@@ -0,0 +1,31 @@
+-- /usr/lib/cgit/lua/debug_gpgfrontend.lua
+local r = lighty.r
+local a = r.req_attr
+
+-- Get the "original" path to avoid being affected by rewrites
+local raw = a["uri.path-raw"] or a["uri.path"] or "/"
+local orig = a["request.orig-uri"] or raw
+
+-- Match two entry points:
+-- 1) /GpgFrontend/...
+-- 2) /cgit.cgi/GpgFrontend/... (when the user accessed cgit.cgi directly)
+local new_path
+
+if orig:match("^/GpgFrontend") then
+ new_path = orig:gsub("^/GpgFrontend", "/gpgfrontend")
+elseif orig:match("^/cgit%.cgi/GpgFrontend") then
+ -- Convert /cgit.cgi/GpgFrontend/... to /gpgfrontend/... so rewrite adds /cgit.cgi only once
+ new_path = orig:gsub("^/cgit%.cgi/GpgFrontend", "/gpgfrontend")
+end
+
+if new_path then
+ local q = a["uri.query"]
+ if q and #q > 0 and not new_path:find("%?") then
+ new_path = new_path .. "?" .. q
+ end
+ r.resp_header["Location"] = new_path
+ return 301
+end
+
+r.resp_header["X-Magnet-Probed"] = "1"
+return 0 \ No newline at end of file