From 3079105705d76ff0fbfcc755825aa75b0b6ef01a Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 25 Oct 2013 12:18:23 -0400
Subject: [PATCH] Set Link: <url>; rel="canonical" http header for SEO (issue-304)
---
src/main/java/com/gitblit/wicket/pages/BasePage.java | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/gitblit/wicket/pages/BasePage.java b/src/main/java/com/gitblit/wicket/pages/BasePage.java
index cb9de9f..f881683 100644
--- a/src/main/java/com/gitblit/wicket/pages/BasePage.java
+++ b/src/main/java/com/gitblit/wicket/pages/BasePage.java
@@ -88,6 +88,16 @@
}
}
+ protected String getCanonicalUrl() {
+ return getCanonicalUrl(getClass(), getPageParameters());
+ }
+
+ protected String getCanonicalUrl(Class<? extends BasePage> clazz, PageParameters params) {
+ String relativeUrl = urlFor(clazz, params).toString();
+ String canonicalUrl = RequestUtils.toAbsolutePath(relativeUrl);
+ return canonicalUrl;
+ }
+
protected String getLanguageCode() {
return GitBlitWebSession.get().getLocale().getLanguage();
}
@@ -129,6 +139,9 @@
@Override
protected void setHeaders(WebResponse response) {
+ // set canonical link as http header for SEO (issue-304)
+ // https://support.google.com/webmasters/answer/139394?hl=en
+ response.setHeader("Link" ,MessageFormat.format("<{0}>; rel=\"canonical\"", getCanonicalUrl()));
int expires = GitBlit.getInteger(Keys.web.pageCacheExpires, 0);
if (expires > 0) {
// pages are personalized for the authenticated user so they must be
--
Gitblit v1.9.1