]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki.pm
Use protocol-relative URIs if cgiurl and url differ only by authority (hostname)
[ikiwiki.git] / IkiWiki.pm
index d5d11ee857c02b1520fc6a971032cc592df78d23..c1518a2ae058a1682d883f628a9f7fb8fae2c97f 100644 (file)
@@ -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{//$}{/};