Буквально вчера мне в читалку приехал пост Саймона Виллисона о довольно
новом способе сокращать урлы.
Идея заключается в том, что сокращалки урлов на самом деле — не очень хорошая
штука, особенно с точки зрения жизни этих ссылок (вопрос о том, нужно ли
сокращать урлы — отдельная вещь). Что, если tinyurl.com умрет? Куча ссылок
перестанет работать, даже если их цель все еще жива. В результате обсуждения
родилась мысль, что можно же позволить сайтам самим указывать короткие урлы,
с возможностью использования своих собственных сокращалок адресов.
Итого — сайт со спецификацией (если это можно так назвать), вкратце — надо
указать в <head>...</head> документа подобный линк:
<link rev="canonical" href="здесь-короткий-урл">
И вот в посте Саймон рассказывает о том, как он реализовал это у себя — мне
решение понравилось тем, что в базу ничего не сохраняется. ;) Однако то, что у
него захардкожены модели — это не сильно клево, потому я сел и быстренько сделал
небольшое джанго-приложение — revcanonical, которое только тем и
занимается, что генерирует и редиректит такие ссылки.
Все урлы имеют вид двух строчек, объединенных точкой — это
base62-кодированные номера типа (ContentType) и самого объекта в базе
данных. Т.е. применять можно абсолютно для любого объекта без всякой
настройки. Определение урла, как обычно — с помощью get_absolute_url(), ну да
об этом написано и в README.
Само собой, оно уже встроено в Byteflow. ;-)
11
comments
»