diff options
-rw-r--r-- | ansible/roles/trove-setup/templates/lighttpd/git-httpd.conf | 14 | ||||
-rw-r--r-- | http-assets/index.html | 2 | ||||
-rw-r--r-- | share/etc/cgitrc | 2 |
3 files changed, 17 insertions, 1 deletions
diff --git a/ansible/roles/trove-setup/templates/lighttpd/git-httpd.conf b/ansible/roles/trove-setup/templates/lighttpd/git-httpd.conf index 8b4a22e..f2d61c9 100644 --- a/ansible/roles/trove-setup/templates/lighttpd/git-httpd.conf +++ b/ansible/roles/trove-setup/templates/lighttpd/git-httpd.conf @@ -10,6 +10,7 @@ server.modules = ( "mod_alias", "mod_compress", "mod_redirect", + "mod_rewrite", "mod_cgi", "mod_auth", "mod_setenv", @@ -61,6 +62,19 @@ $HTTP["url"] =~ "^/git/.*$" { ) } +# Avoid needlessly long cgit URLs. This must correspond with the +# 'virtual-root' setting in /etc/cgitrc. +url.rewrite-if-not-file = ( + "^/cgit/(.*)$" => "/cgi-bin/cgit.cgi/$1", +) + +# Allow /baserock and /delta, but redirect them to the proper /cgit/ path. +# Troves can contain arbitrary project names, so we can't do this for all +# projects, we just special-case the ones for git.baserock.org. +$HTTP["url"] =~ "^/(baserock|delta)(/.*)?$" { + url.redirect = ( "^/(.*)" => "/cgit/$1" ) +} + $HTTP["scheme"] == "https" { include "git-auth.conf" diff --git a/http-assets/index.html b/http-assets/index.html index 0a8c3f9..18069ec 100644 --- a/http-assets/index.html +++ b/http-assets/index.html @@ -1,5 +1,5 @@ <html><head> -<meta http-equiv="refresh" content="0; /cgi-bin/cgit.cgi"> +<meta http-equiv="refresh" content="0; /cgit/"> </head> <body> </body> diff --git a/share/etc/cgitrc b/share/etc/cgitrc index 28540dd..83daf94 100644 --- a/share/etc/cgitrc +++ b/share/etc/cgitrc @@ -24,3 +24,5 @@ mimetype.png=image/png mimetype.svg=image/svg+xml scan-path=/home/git/repos/ + +virtual-root=/cgit/ |