avoid adding ./ to urls unnecessarily
authorJoey Hess <joey@kodama.kitenet.net>
Thu, 20 Nov 2008 17:55:57 +0000 (12:55 -0500)
committerJoey Hess <joey@kodama.kitenet.net>
Thu, 20 Nov 2008 17:55:57 +0000 (12:55 -0500)
This avoids constructing urls like "./../foo/".
The leading "../" avoids any colon confusion already.

I noticed in my logs that certain badly written web spiders (hello again,
Yahoo!) fail to follow urls like ikiwiki was constructing to the right
place (instead ending up at "./foo/")

IkiWiki.pm

index 735dc97b14f32dce588410e00b9063342054a668..17e2a2a857e098e7feb10bc21fe326ee22df509e 100644 (file)
@@ -942,9 +942,9 @@ sub beautify_urlpath ($) { #{{{
                $url =~ s!/index.$config{htmlext}$!/!;
        }
 
-       # Ensure url is not an empty link, and
-       # if it's relative, make that explicit to avoid colon confusion.
-       if ($url !~ /^\//) {
+       # Ensure url is not an empty link, and if necessary,
+       # add ./ to avoid colon confusion.
+       if ($url !~ /^\// && $url !~ /^\.\.\//) {
                $url="./$url";
        }