From: Eric Wong Date: Wed, 4 Jan 2023 10:34:03 +0000 (+0000) Subject: git: fix non-empty SCRIPT_NAME handling for PSGI mounts X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;ds=sidebyside;h=a0646591eacd2403476545ac4569bd7c551e67cf;p=public-inbox.git git: fix non-empty SCRIPT_NAME handling for PSGI mounts When using the `mount' directive in PSGI (Plack::App::URLMap), SCRIPT_NAME still needs to use a trailing slash before it can be joined with another URL. --- diff --git a/lib/PublicInbox/Git.pm b/lib/PublicInbox/Git.pm index c7f82ba2..d8468b4f 100644 --- a/lib/PublicInbox/Git.pm +++ b/lib/PublicInbox/Git.pm @@ -477,10 +477,10 @@ sub local_nick ($) { sub host_prefix_url ($$) { my ($env, $url) = @_; return $url if index($url, '//') >= 0; - my $scheme = $env->{'psgi.url_scheme'}; my $host_port = $env->{HTTP_HOST} // "$env->{SERVER_NAME}:$env->{SERVER_PORT}"; - "$scheme://$host_port". ($env->{SCRIPT_NAME} || '/') . $url; + my $sn = $env->{SCRIPT_NAME} // ''; + "$env->{'psgi.url_scheme'}://$host_port$sn/$url"; } sub base_url { # for coderepos, PSGI-only