mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)
Mark Smith ([staff profile] mark) wrote in [site community profile] changelog2009-07-22 01:56 am

[dw-free] Arguments cause a page to be indexed as different content on search engines

[commit: http://hg.dwscoalition.org/dw-free/rev/cbf80d2d289a]

http://bugs.dwscoalition.org/show_bug.cgi?id=1427

Add canonical URL anchors to the HTML of most entry/comment pages.

Patch by [personal profile] afuna.

Files modified:
  • cgi-bin/LJ/S2/EntryPage.pm
  • cgi-bin/LJ/S2/ReplyPage.pm
  • htdocs/talkpost.bml
  • htdocs/talkread.bml
--------------------------------------------------------------------------------
diff -r f6f8ca5311a9 -r cbf80d2d289a cgi-bin/LJ/S2/EntryPage.pm
--- a/cgi-bin/LJ/S2/EntryPage.pm	Wed Jul 22 01:52:33 2009 +0000
+++ b/cgi-bin/LJ/S2/EntryPage.pm	Wed Jul 22 01:56:19 2009 +0000
@@ -54,6 +54,12 @@ sub EntryPage
     
     my $next_url = S2::Builtin::LJ::Entry__get_link( $opts->{ctx}, $s2entry, "nav_next" )->{url};
     $p->{head_content} .= qq{<link rel="next" href="$next_url" />\n} if $next_url;
+
+    # canonical link to the entry or comment thread
+    my $canonical_url = $permalink;
+    my $threadid = $get->{thread} + 0;
+    $canonical_url .= "?thread=$threadid#t$threadid" if $threadid;
+    $p->{head_content} .= qq{<link rel="canonical" href="$canonical_url" />\n};
 
     # quickreply js libs
     LJ::need_res(qw(
diff -r f6f8ca5311a9 -r cbf80d2d289a cgi-bin/LJ/S2/ReplyPage.pm
--- a/cgi-bin/LJ/S2/ReplyPage.pm	Wed Jul 22 01:52:33 2009 +0000
+++ b/cgi-bin/LJ/S2/ReplyPage.pm	Wed Jul 22 01:56:19 2009 +0000
@@ -42,6 +42,13 @@ sub ReplyPage
     return if $opts->{'handler_return'};
     return if $opts->{'redir'};
     my $ditemid = $entry->ditemid;
+
+    # canonical link to the entry or comment thread
+    my $canonical_url = $entry->url;
+    my $replytoid = $get->{replyto} ? $get->{replyto} + 0 : 0;
+    $canonical_url .= "?thread=$replytoid#t$replytoid" if $replytoid;
+    $p->{head_content} .= qq{<link rel="canonical" href="$canonical_url" />\n};
+
     $p->{'head_content'} .= $LJ::COMMON_CODE{'chalresp_js'};
 
     LJ::need_res('stc/display_none.css');
@@ -56,7 +63,6 @@ sub ReplyPage
     # setup the replying item
     my $replyto = $s2entry;
     my $editid = $get->{edit} ? $get->{edit} : 0;
-    my $replytoid = $get->{replyto} ? $get->{replyto} : 0;
     my $parpost;
 
     my $comment;
diff -r f6f8ca5311a9 -r cbf80d2d289a htdocs/talkpost.bml
--- a/htdocs/talkpost.bml	Wed Jul 22 01:52:33 2009 +0000
+++ b/htdocs/talkpost.bml	Wed Jul 22 01:56:19 2009 +0000
@@ -132,6 +132,12 @@ body<=
     my $ditemid = $init->{'ditemid'};
     my $talkurl = LJ::journal_base($u) . "/$ditemid.html";
     my $entry = LJ::Entry->new($u, ditemid => $ditemid);
+
+    # canonical link to the entry or comment thread
+    my $canonical_url = $entry->url;
+    my $threadid = $GET{replyto} + 0;
+    $canonical_url .= "?thread=$threadid#t$threadid" if $threadid;
+    $head .= qq{<link rel="canonical" href="$canonical_url" />\n};
 
     $parpost ||= $item;  # if there's no parent post, remote is reply to top-level item
 
diff -r f6f8ca5311a9 -r cbf80d2d289a htdocs/talkread.bml
--- a/htdocs/talkread.bml	Wed Jul 22 01:52:33 2009 +0000
+++ b/htdocs/talkread.bml	Wed Jul 22 01:56:19 2009 +0000
@@ -113,6 +113,12 @@ body<=
     }
 
     my $entry = LJ::Entry->new($u, ditemid => $ditemid);
+
+    # canonical link to the entry or comment thread
+    my $canonical_url = $entry->url;
+    my $threadid = $GET{thread} + 0;
+    $canonical_url .= "?thread=$threadid#t$threadid" if $threadid;
+    $$head .= qq{<link rel="canonical" href="$canonical_url" />\n};
 
     $u->preload_props("opt_blockrobots", "adult_content") if $u->is_visible;
     if (!$u->is_visible || $u->should_block_robots || ($entry && $entry->should_block_robots)) {
--------------------------------------------------------------------------------