From 532f7adfdba3c852487216b0241b25d3de57acc6 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Sun, 5 Oct 2014 15:56:19 +0100 Subject: Use protocol-relative URIs if cgiurl and url differ only by authority (hostname) --- IkiWiki.pm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'IkiWiki.pm') diff --git a/IkiWiki.pm b/IkiWiki.pm index d5d11ee85..c1518a2ae 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -613,12 +613,19 @@ sub checkconfig () { $local_cgiurl = $cgiurl->path; - if ($cgiurl->scheme ne $baseurl->scheme or - $cgiurl->authority ne $baseurl->authority) { + if ($cgiurl->scheme ne $baseurl->scheme) { # too far apart, fall back to absolute URLs $local_url = "$config{url}/"; $local_cgiurl = $config{cgiurl}; } + elsif ($cgiurl->authority ne $baseurl->authority) { + # slightly too far apart, fall back to + # protocol-relative URLs + $local_url = "$config{url}/"; + $local_url =~ s{^https?://}{//}; + $local_cgiurl = $config{cgiurl}; + $local_cgiurl =~ s{^https?://}{//}; + } } $local_url =~ s{//$}{/}; -- cgit v1.2.3