Короткие ссылки средствами modx
Запрос на помощь вылился в готовый результат.
Пример основной задачи — реализация сайта с кириллическим именем домена, и ссылками так же на кириллице. Типа: сайт.рф/каталог/ресурс
Выглядит красиво, доступно, запоминается, и говорят — полезно для СЕО. Но появилась проблемка, связанная с тем, что при попытке поделиться урлом, порой выводится неудобноваримая ссылка из кучи непонятных символов. Что нибудь типа такого:
Текущая задача — настроить короткие ссылки на латинице для каждого из ресурсов. При этом не использовать сторонние сервисы/сайты.
1. Нужен служебный домен на латинице, для примера site.ru
2. Нужен редирект на уровне веб-сервера со служебного домена на основной
Я реализовал для nginx таким образом (несмотря на то, что apache присутствует как бэкенд):
То есть создан отдельный раздел в конфиге, и запрос site.ru перенаправляет на домен сайт.рф
3. Настройка и вывод короткой ссылки на каждом ресурсе. Благодарность Максиму!
Создать плагин в modx со следующим содержанием
Плагин должен срабатывать на событие OnHandleRequest
В каждом ресурсе короткая ссылка выводится классическим способом:
В результате ссылка вида site.ru/9 перенаправит на ресурс с ссылкой вида сайт.рф/каталог/подкаталог/ресурс — в общем, на нужный ресурс с id 9.
Кстати говоря, короткие ссылки используются на многих сайтах с доменами на латинице. Это востребовано там, где много полезных материалов, длинные чпу, и есть потребность делиться ссылками, например через скайпы и телеграмы. Пример: russian.rt.com
Пример основной задачи — реализация сайта с кириллическим именем домена, и ссылками так же на кириллице. Типа: сайт.рф/каталог/ресурс
Выглядит красиво, доступно, запоминается, и говорят — полезно для СЕО. Но появилась проблемка, связанная с тем, что при попытке поделиться урлом, порой выводится неудобноваримая ссылка из кучи непонятных символов. Что нибудь типа такого:
...%D1%82%D1%83%D0%BF%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F/%D0%BF%D0%B5%...Текущая задача — настроить короткие ссылки на латинице для каждого из ресурсов. При этом не использовать сторонние сервисы/сайты.
1. Нужен служебный домен на латинице, для примера site.ru
2. Нужен редирект на уровне веб-сервера со служебного домена на основной
Я реализовал для nginx таким образом (несмотря на то, что apache присутствует как бэкенд):
server {
server_name site.ru;
rewrite ^(.*) http://xn--80aswg.xn--p1ai$1 permanent;
}То есть создан отдельный раздел в конфиге, и запрос site.ru перенаправляет на домен сайт.рф
3. Настройка и вывод короткой ссылки на каждом ресурсе. Благодарность Максиму!
Создать плагин в modx со следующим содержанием
$e = $modx->event;
if ($e->name == 'OnHandleRequest') {
if (is_numeric($_GET['q'])) {
$url = $modx->makeUrl($_GET['q'],'','','full');
if (!empty($url)) $modx->sendRedirect($url,array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
}
}Плагин должен срабатывать на событие OnHandleRequest
В каждом ресурсе короткая ссылка выводится классическим способом:
http://site.ru/[[*id]]В результате ссылка вида site.ru/9 перенаправит на ресурс с ссылкой вида сайт.рф/каталог/подкаталог/ресурс — в общем, на нужный ресурс с id 9.
Кстати говоря, короткие ссылки используются на многих сайтах с доменами на латинице. Это востребовано там, где много полезных материалов, длинные чпу, и есть потребность делиться ссылками, например через скайпы и телеграмы. Пример: russian.rt.com
Комментарии: 9
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Уверен пригодится
Ведь 301й редирект это перенаправление со старого адреса страницы на новый. А Вы будете пытаться подсунуть поисковику редирект со страниц, которых никогда и не было. В лучшем случае, такие ссылки поисковые роботы не проиндексируют, в худшем — заподозрят вас в чёрном СЕО со всеми вытекающими последствиями.
Это ваши опасения или конкретный опыт? Что значит «заподозрят»? Что значит «никогда не было»? Ведь всё, что касается web когда-то отсутствовало, а потом появилось. А что значит «никак не относятся к Вашему сайту», если очень даже относятся — прямым редиректом?
301 редирект это 301 редирект, без разницы что было раньше а что позже. У того же Яндекса достаточно материалов о 301 редиректе, что бы опасаться последствий. Главное всё сделать правильно, а это на мой взгляд не сложно.
Допустим по всем соц-сетям появятся короткие ссылки имеющие отношение к боевому сайту. Что бы у робота исчезли все сомнения, достаточно в Robot.txt указать директиву host с указанием на главный домен.
Я никогда не пользовался биржами ссылок, но есть некоторое представление об их работе. Сильно сомневаюсь в ваших опасениях, имея перед глазами эти представления. Если бы вы были правы, короткие ссылки бы никто не использовал (тем более с использованием сторонних сервисов), или были бы тонны макулатуры на этот счёт, о которых бы мы знали.
Для многострадального СЕО на мой взгляд пока может быть только одна проблема, в данном случае — если бы короткие ссылки дублировали основные ссылки. Но так как будет редирект — всё в порядке!
clck.ru/ — укорачиватель от Яндекса
Вот эти сервисы точно не имеют никакого отношения к любому моему сайту.
Ещё немного правильных терминов от Яндекса
«301 — постоянное перенаправление;»
«a.ru/index1.html -> b.ru/index2.html — межхостовое перенаправление»
yandex.ru/support/webmaster/robot-workings/managing-redirects.xml
И вообще — в данном случае произойдёт склейка доменов, и вес домена для коротких ссылок будет положительно влиять на вес основного домена. И короткие ссылки как раз нужны для того, что бы пользователи ими более активно делились. И это не единственный их плюс.
Короче — коротко не получилось у меня)