OSDN Git Service

BugTrack2/361 Send Canonical URL link http header for Search Engines
authorumorigu <umorigu@gmail.com>
Sun, 21 Feb 2016 20:27:22 +0000 (05:27 +0900)
committerumorigu <umorigu@gmail.com>
Sun, 21 Feb 2016 20:27:22 +0000 (05:27 +0900)
lib/html.php

index d6eb24d..6b2fc6c 100644 (file)
@@ -48,6 +48,12 @@ function catbody($title, $page, $body)
        $_page  = isset($vars['page']) ? $vars['page'] : '';
        $r_page = pagename_urlencode($_page);
 
+       // Canonical URL
+       $canonical_url = $script;
+       if ($_page !== $defaultpage) {
+               $canonical_url = $script . '?' . $r_page;
+       }
+
        // Set $_LINK for skin
        $_LINK['add']      = "$script?cmd=add&amp;page=$r_page";
        $_LINK['backup']   = "$script?cmd=backup&amp;page=$r_page";
@@ -61,7 +67,7 @@ function catbody($title, $page, $body)
        $_LINK['new']      = "$script?plugin=newpage&amp;refer=$r_page";
        $_LINK['rdf']      = "$script?cmd=rss&amp;ver=1.0";
        $_LINK['recent']   = "$script?" . pagename_urlencode($whatsnew);
-       $_LINK['reload']   = "$script?$r_page";
+       $_LINK['reload']   = $canonical_url;
        $_LINK['rename']   = "$script?plugin=rename&amp;refer=$r_page";
        $_LINK['rss']      = "$script?cmd=rss";
        $_LINK['rss10']    = "$script?cmd=rss&amp;ver=1.0"; // Same as 'rdf'
@@ -140,6 +146,11 @@ function catbody($title, $page, $body)
                }
        }
 
+       // Send Canonical URL for Search Engine Optimization
+       if ($is_read && !headers_sent()) {
+               header("Link: <$canonical_url>; rel=\"canonical\"");
+       }
+
        // Search words
        if ($search_word_color && isset($vars['word'])) {
                $body = '<div class="small">' . $_msg_word . htmlsc($vars['word']) .