diff options
author | Simon McVittie <smcv@debian.org> | 2014-10-05 15:56:19 +0100 |
---|---|---|
committer | Simon McVittie <smcv@debian.org> | 2014-10-05 15:56:19 +0100 |
commit | 532f7adfdba3c852487216b0241b25d3de57acc6 (patch) | |
tree | a60cab10931514018069fbac24968a180b38d108 /IkiWiki.pm | |
parent | fe9e94513ab0d57f182a6922957ea14c773b4fae (diff) | |
download | ikiwiki-532f7adfdba3c852487216b0241b25d3de57acc6.tar ikiwiki-532f7adfdba3c852487216b0241b25d3de57acc6.tar.gz |
Use protocol-relative URIs if cgiurl and url differ only by authority (hostname)
Diffstat (limited to 'IkiWiki.pm')
-rw-r--r-- | IkiWiki.pm | 11 |
1 files changed, 9 insertions, 2 deletions
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{//$}{/}; |