Bug#794091: Please canonicalise meeting URLs with HTTP 301
Package: summit.debconf.org
Severity: wishlist
Tags: patch
Please canonicalise meeting URLs with HTTP 301.
This will not only correctly redirect if the name changes, it also
avoids
"embarrassing" URLs such as:
https://summit.debconf.org/debconf15/meeting/183/boring-and-tedious-talk
Patch attached.
Regards,
--
,''`.
: :' : Chris Lamb
`. `'` lamby@debian.org / chris-lamb.co.uk
`-
From ac27076470b2be01c2e07359986207dac8c63ab4 Mon Sep 17 00:00:00 2001
From: Chris Lamb <lamby@debian.org>
Date: Thu, 30 Jul 2015 13:11:39 +0100
Subject: [PATCH] Canonicalise meeting URLs with HTTP 301
This will not only correctly redirect if the name changes, it also avoids
"embarrassing" URLs such as:
https://summit.debconf.org/debconf15/meeting/183/boring-and-tedious-talks
Signed-off-by: Chris Lamb <lamby@debian.org>
---
summit/schedule/views.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/summit/schedule/views.py b/summit/schedule/views.py
index 595dc3f..ed28c17 100644
--- a/summit/schedule/views.py
+++ b/summit/schedule/views.py
@@ -18,7 +18,7 @@ import datetime
from django.db.models import Q
from django.contrib.auth import logout
-from django.http import Http404, HttpResponse, HttpResponseRedirect
+from django.http import Http404, HttpResponse, HttpResponseRedirect, HttpResponsePermanentRedirect
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
from django.core.urlresolvers import reverse
@@ -457,6 +457,9 @@ def tracks(request, summit):
@summit_required
def meeting(request, summit, attendee, meeting_id, meeting_slug):
meeting = get_object_or_404(summit.meeting_set, id=meeting_id)
+ # Canonicalise
+ if meeting_slug != meeting.slug:
+ return HttpResponsePermanentRedirect(meeting.get_meeting_page_url())
if meeting.private and not meeting.can_view_pm(attendee):
raise Http404
return _show_meeting(request, summit, meeting, attendee)
--
2.1.4
Reply to: