From a0646591eacd2403476545ac4569bd7c551e67cf Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 4 Jan 2023 10:34:03 +0000 Subject: 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. --- lib/PublicInbox/Git.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/PublicInbox/Git.pm') 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 -- cgit v1.2.3-24-ge0c7