Редирект менеджер обновлен

+21
1.8K
Наконец-то дошли руки до редирект-менеджера, вернее до его обновления.

Новое:
Поддержка 2.10.0+
Маски для исходного URL
Переменные для целевого URL

Маски для исходного URL
{d} — целые числа (123)
{s} — строка (ab-cd_ef)
{sd} — строка и/или целые числа (123abc)
{*} — любые символы (url/123?prm=1)

Переменные для целевого URL
Вы можете воспользоваться подстановкой данных в целевой URL полученных из исходного URL вставив в шаблон целевого URL знак доллара со следующим за ним номером маски из исходного URL.

Например:
Откуда: primer/{d}/demo/{s}
Куда: test/$2/$1/$2$1.html
Такое правило перенаправит пользователя
с httр://site.ru/primer/777/hdrdrh/ttt
на httр://site.ru/test/ttt/777/ttt777.html

* * *

Добавление адресов для редиректа происходит через админку.

Переадресацию можно устанавливать и с кириллических адресов.

Можно установить либо 301 заголовок (если страница перемещена) либо 410 (если страница полностью удалена и об этом нужно сообщить поисковикам).

Установка стандартная через админку.

* * *
Версия 3.0.1 (05.10.2018)
Исправлена ошибка при "прямом" (без маски) редиректе. Обновить через админку в каталоге дополнений (раздел SEO).

Распространяется бесплатно, но вы можете угостить чашкой кофе:
Яндекс.Деньги: 41001823847377
Сбербанк (Оксана Алексеевна Ш.): 4817760099670808
WebMoney: R401209930928

Или воспользоваться хостингом по моей партнерке: beget.com/p444057

Не забывайте отписаться о результатах запуска на своих проектах!

+1
Иван Шкута Иван Шкута 5 лет назад #
Была выявлена ошибка при "прямом" (без маски) перенаправлении. Исправлено. Обновиться можно через каталог дополнений (раздел SEO) в админке вашего сайта.
0
webtotma webtotma 5 лет назад #
Решил попробовать компонент.
Хотел с site.ru/test1/test11 перенаправлять на site.ru/test1/test11/about.html
Так должно работать? У меня ничего не получилось.
Далее пробовал подставлять различные url - тоже не работает.

ЧЯДНТ?

версия системы 2.10.1.
шаблон не default.
0
Zau4man Zau4man 5 лет назад #
Надеюсь, автор тоже даст ответ.
А так, судя по коду, компонент срабатывает только тогда, когда система должна отдать 404 ошибку.

Т.е. если страница site.ru/test1/test11 в вашем случае открывается корректно, то компонент не сработает.
0
Иван Шкута Иван Шкута 5 лет назад #
Да, вы правы. Компонент срабатывает только тогда, когда должна сработать 404 ошибка. Собственно описанные выше случаи происходят довольно редко и дергать из-за них БД при каждой инициализации (а таблица со списком редиректов со временем может стать достаточно объемной) не целесообразно.

В вашем случае, на мой взгляд, лучше в начало файла /templates/default/controllers/content/category_view.tpl.php, наследующей строке после "<?php" вставить такой код:
Код PHP:
  1. $redirets = [
  2. 'test11' => '/test1/test11/about.html',
  3. 'test22' => '/test1/test11/about.html',
  4. 'test33' => '/test1/test11/about33.html'
  5. ];
  6. if($ctype['name'] === 'test1' && isset($category['slug']) && array_key_exists($category['slug'], $redirets)){
  7. cmsCore::getController('content')->redirect( $redirets[ $category['slug'] ] );
  8. }
Если вы имеете доступ к файлам сайта, то это как вариант решения вашей задачи.
0
webtotma webtotma 5 лет назад #
Спасибо. Будем пробовать.
0
IRIPUS IRIPUS 5 лет назад #
А можно с помощью этого замечательного приложения избавиться от url типа контента?
0
SmartControl SmartControl 5 лет назад #
Нет
0
WebMan WebMan 5 лет назад #
Спасибо за компонент, Иван! Вот и мне пригодился. Отправил небольшую благодарность на WMR. smile

Добавьте, пожалуйста, в следующую версию знак "+" (плюс) в качестве разрешённого для URL-ов "откуда" и "куда". Была задача перенаправить на тег из двух слов, а они в адресе соединяются плюсом, пришлось править две регулярки (строки 20 и 37 в \system\controllers\shredirect\backend\actions\add.php).
0
WebMan WebMan 5 лет назад #
И будет удобно, если добавите в таблице редиректов сортировку и фильтры хотя бы по колонкам с адресами (с запоминанием выбранной сортировки в users_personal_settings).
0
Иван Шкута Иван Шкута 5 лет назад #
Спасибо! v
Насчет "+" логично, надо будет сделать. А по поводу users_personal_settings не совсем понял необходимость (просто фильтр уже есть), но как посплю подумаю над этим получше :)
0
WebMan WebMan 5 лет назад #
Да, это я вчера заработался, тупанул насчёт фильтра. Он уже есть. smile
Немножко не хватает сортировки по полям адресов для большей наглядности. И выбранную сортировку можно сохранять в UPS, как это уже привычно в Админке (например, в списке пользователей).

Еще от автора

Доступность всех групп при редактировании записи
Сейчас администратор при редактировании чьей-то записи не может указать группу в которой не состоит сам.
Поле "Точка на карте"
Это поле позволяет указать точку на карте (Яндекс.Карты) и вывести карту с этой точкой в записи / профиле / группе.
Изображение с возможностью обрезки на стороне клиента
Улучшение для стандартного поля «Изображение» позволяющее редактировать загруженное изображение на стороне клиента.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.