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