Обновление компонента "Редирект и скачивание" для 1.10.6 1.X

73039
Данный пост навеян этой темой а так же другими личными обращениями с подобными проблемами. Поэтому, чтобы всем лично не объяснять, написан этот пост. Данное решение сделано уже давно и будет в 1.10.7.

Итак, что будет после обновления

Все внешние ссылки, которые идут через /go/url= а так же через /load/url= будут предварительно редиректить на внутреннюю страницу сайта, где уже по таймеру, с предупреждением об опасности, будет js редирект.
Вся страница редиректа обрамлена в noindex, сама внешняя ссылка в rel="nofollow" - так что любители seo пусть порадуются, ну или покритикуют smile . Пожелания и предложения выслушаю.
Особенностью этого обновления является так же то, что при наличии на хостинге поддержки CURL, все внешние ссылки предварительно проверяются посредством открытого метода Вконтакте по проверке ссылок. Кроме этого, этот метод проверки разыменовывает ссылку, если она была сформирована через сервис сокращения ссылок.

Обновление компонента \"Редирект и скачивание\" для 1.10.6
Обновление компонента \"Редирект и скачивание\" для 1.10.6
Обновление компонента \"Редирект и скачивание\" для 1.10.6

Скачать

Порядок установки:

1. Бекап участвующих файлов
2. Содержимое архива распаковать с заменой

Приятного использования!
Логирование авторизаций | Микроформат Open Graph
Комментарии (45)
nmsk 18 марта 2015 в 11:26 +2
Хорошее дополнение. v
garry 18 марта 2015 в 11:27 +1
Штука очень полезная во всех смыслах...
Но я бы дополнил, что стоит обязательно закрыть в robots.txt во всех блоках если есть такие для разных поисковиков или один у вас, но в таком формате (только как пример)

Disallow: /go/
Disallow: /load/

Тогда боты просто не будут туда лазить.
Stecc 18 марта 2015 в 11:52 0
Disallow: /load/
load за что отвечает?
Stecc 18 марта 2015 в 11:52 0
Т.е. получается теперь все ссылки внешние будут закрыты в noindex?
Если да, давно ждал такое дополнение.
+++
Stecc 18 марта 2015 в 12:25 0
Не могу понять, а как он определяет подозрительный сайт?
Как сделать чтобы выводилось страница как на первом скрине?

А то получается достойные сайты он не открывает, и относит их к подозрительным.
Fuze 18 марта 2015 в 12:29 0
как он определяет подозрительный сайт
Fuze:
все внешние ссылки предварительно проверяются посредством открытого метода Вконтакте по проверке ссылок
Как сделать чтобы выводилось страница как на первом скрине?
если ссылка нормальная, то будет как на первом скрине
Stecc 18 марта 2015 в 13:12 0
Это один из самых крупных сео форумов в СНГ.
Это получается он заблокирован в вконтакте? из-за этого считается он подозрительным?

Может можно это как-то убрать?
А заблокировать сам ВК laugh
Fuze 18 марта 2015 в 13:20 +1
Вы прочитали по ссылке https://vk.com/dev/utils.checkLink как проверяется? Не я проверяю и не компонент.
Это один из самых крупных сео форумов в СНГ.
Какой? Я проверил сейчас топ5 - никто не заблокирован.
Можете проверку ссылок убрать в коде, это никто не запрещает делать.
В идеале бы конечно добавить опцию проверять/не проверять, белый список. Но это уже в другой раз.
Stecc 18 марта 2015 в 13:23 0
maultalk блокирует.
А как убрать проверку ссылок? не подскажите?
Fuze 18 марта 2015 в 13:33 +4
обновлю архив, сделаю проверку отключаемую и вайтлист, ожидайте.
Stecc 18 марта 2015 в 13:34 0
Спасибо большое. smile
Stecc 18 марта 2015 в 13:35 0
Ждем. Очень нужный компонент.
alekcandr 18 марта 2015 в 13:29 0
Спасибо решение отличное!!! Скорее бы уже 1.10.7 вышла.
Stecc 18 марта 2015 в 13:32 0
И ссылка вернуться назад не работает если сайт подозрительный.
Хотя по логике она и не должна работать, т.к. страницы открываются в новом окне.
Тогда зачем она там?
Stecc 18 марта 2015 в 13:33 0
И ссылка отмена также если сайт нормальный.
Fuze 18 марта 2015 в 13:38 +2
И ссылка вернуться назад не работает если сайт подозрительный.
Этот патч выдержка из 1.10.7. Чтобы ссылки не открывались теперь в новом окне, нужно в /includes/bbcode/bbcode.lib.php блок
Код PHP:
  1. '#<a href="/go/url=([^"]+)"#',
  2. '$matches',
  3. 'if (!strstr($matches[1], $_SERVER[\'HTTP_HOST\'])){ return "<a target=\"_blank\" title=\"".htmlspecialchars($matches[1])."\" href=\"/go/url=-".base64_encode($matches[1])."\""; } else { return "<a href=\"".htmlspecialchars($matches[1])."\""; }'
  4. ),
  5. $text
  6. );
заменить на
Код PHP:
  1. '#<a href="/go/url=([^"]+)"#', create_function(
  2. '$matches', 'if (!strstr($matches[1], $_SERVER[\'HTTP_HOST\'])){ return "<a rel=\"nofollow\" title=\"".htmlspecialchars($matches[1])."\" href=\"/go/url=-".base64_encode($matches[1])."\""; } else { return "<a href=\"".htmlspecialchars($matches[1])."\""; }'
  3. ), $text
  4. );
Stecc 18 марта 2015 в 13:43 0
Спасибо.
Подожду обновления архива, чтобы сразу все перезалить. smile
Fuze 18 марта 2015 в 14:45 +3
Архив обновлен, добавлены опции, см. третий скрин
Keep 19 марта 2015 в 04:18 0
Подскажите пожалуйста, а на версии 1.10.5 этот компонент будет работать?
Просто есть несколько сайтов которые не будут обновляться с 1.10.5, а компонент такой очень нужен.
Fuze 19 марта 2015 в 09:06 +1
Будет, только в шаблоне все в что в теге <script type="text/javascript"> нужно обернуть в {literal}
Alekskrug 19 марта 2015 в 08:29 0
Глупый вопрос, а где сам компонент?
Если это обновление
Fuze 19 марта 2015 в 09:07 0
В комплекте InstantCMS. Только в админке он не имеет настроек. Все ссылки типа /go/url= и /load/url= обслуживает именно он.
Alekskrug 19 марта 2015 в 13:08 0
У меня почему то он не работает выкидывает 404 ошибку
и ссылка выглядит вот так http://alekskrug.ru/go/url=http://www.rshb.ru
Можно проверьте здесь
как можно исправить эту ошибку, а в статьях переходит сразу без редиректа
Можно проверьте здесь
Max 19 марта 2015 в 15:59 +1
Спасибо.
almond 19 марта 2015 в 15:59 +3
Было бы неплохо добавить еще и черный список доменов, переход по ссылкам на которые был бы невозможен.
Петрмаг 19 марта 2015 в 21:14 0
Вот был бы класс!
Upliner 20 марта 2015 в 13:55 +1
"Маленький шаг для Fuze, но очередной CEO прыжок для ICMS! v
Благодарю за дополнение. Давно хотелось иметь возможность промежуточной страницы при уходе юзеров по ссылкам.
Так же радует, что это официальное дополнение в системе.
Удачи Вам, мистер Аплайнер.
*тоже с серьезным видом*
Clear 20 марта 2015 в 21:02 0
а если я делаю в статьях ссылку на продвигаемый сайт, как тут быть, мне например она нужна и должна передавать вес нормально. Или я на сайте пишу статьи для биржи вечных ссылок ГГЛ, Так никто же не будет заказывать статьи на таком сайте. Как эта ссылка будет работать в разных компонентах? Одинаково для статей и блогов ?
Kreator 21 марта 2015 в 19:29 0
Ссылки с таких статей нужно добавить в белый список
nmsk 21 марта 2015 в 14:57 0
Я как пользователь icms 2, немного завидую пользователям icms 1, с тем что у вас значительно больше возможностей, функций, дополнений для реализации своих сайтов... cry
Zau4man 14 июля 2015 в 10:05 0
Поставил на свой сайт.
Чтобы ссылки не открывались теперь в новом окне, нужно в /includes/bbcode/bbcode.lib.php блок
это же плохо. Юзер уходит с сайта и может не вернуться. В старом способе сайт по ссылке открывался в новом окне...
Zau4man 14 июля 2015 в 14:00 0
В общем, убрал правки из архива, убирающие открывание внешних ссылок в новом окне - раз.
В языковом файле убрал ссылку history.back и заменил ее на фразу закройте страницу.

Имхо, внешняя ссылка должна открываться в новом окне, чтобы юзер, после ее просмотра, мог вернуться к обсуждению на сайте.
Helg 14 июля 2015 в 11:10 0
Там бы еще возможность встраивания и просмотра рекламы добавить, пока таймер срабатывает. По типу, как на ФО сделано. Пусть просматривают)))
Zau4man 17 сентября 2015 в 14:17 0
Так. А где поправить, чтобы параметры ссылки не обрезались при переходе?

Вставил ссылку так http:// сайт .ru/viewtopic.php?f=513&t=6853
На странице редиректа ссылка превратилась в
http:// сайт .ru/viewtopic.php?f=513

Ну и соответственно, тема форума не найдена...
classics 7 февраля 2016 в 01:20 0
А для версии 1.9 можно такое решение? чтобы всё что в /go/url редиректило сначала на внутреннюю страницу, и таймер не нужен, пусть пользователь сам нажимает на ссылку чтобы перейти на внешнюю ссылку.
Данила 27 марта 2016 в 19:22 0
А как вообще редирект в блогах убрать на 1.10.6??? Помогите пожалуйста!!
Fuze 27 марта 2016 в 19:31 0
Видимо не вставлять внешние ссылки. Вопрос непонятен.
fotpod 12 июня 2016 в 16:58 +1
Подскажите, а для 1.10.1 кто нибудь делал такое? Просто очень-очень нужно((
Azura 13 июня 2016 в 12:33 0
Шикарно! *_* Давно хотела эту функцию!
alpik 15 июня 2016 в 15:38 0
Будет ли работать на версии 1.10.2?
Fuze 15 июня 2016 в 16:54 0
Я не проверял, попробуйте. Вероятно будет, а если нет, то исправить нужно будет совсем немного.
alpik 16 июня 2016 в 08:39 0
Подскажите пожалуйста что подправить, очень уж необходимо решение внедрить
alpik 16 июня 2016 в 08:57 0
Содержимое архива распаковал с заменой, в шаблоне все в что в теге <script type="text/javascript"> обернул в {literal}
= > в итоге ошибка HTTP ERROR 500 , похоже еще где-то надо править...
yury 30 июня 2016 в 08:30 0
в компоненте мапс он действует?