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

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

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

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





Скачать

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

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

Приятного использования!
+2
nmsk nmsk 9 лет назад #
Хорошее дополнение. v
+1
garry garry 9 лет назад #
Штука очень полезная во всех смыслах...
Но я бы дополнил, что стоит обязательно закрыть в robots.txt во всех блоках если есть такие для разных поисковиков или один у вас, но в таком формате (только как пример)

Disallow: /go/
Disallow: /load/

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

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

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

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

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

Ну и соответственно, тема форума не найдена...
0
classics classics 8 лет назад #
А для версии 1.9 можно такое решение? чтобы всё что в /go/url редиректило сначала на внутреннюю страницу, и таймер не нужен, пусть пользователь сам нажимает на ссылку чтобы перейти на внешнюю ссылку.
0
Данила Данила 8 лет назад #
А как вообще редирект в блогах убрать на 1.10.6??? Помогите пожалуйста!!
0
Fuze Fuze 8 лет назад #
Видимо не вставлять внешние ссылки. Вопрос непонятен.
+1
fotpod fotpod 8 лет назад #
Подскажите, а для 1.10.1 кто нибудь делал такое? Просто очень-очень нужно((
0
Azura Azura 8 лет назад #
Шикарно! *_* Давно хотела эту функцию!
0
alpik alpik 8 лет назад #
Будет ли работать на версии 1.10.2?
0
Fuze Fuze 8 лет назад #
Я не проверял, попробуйте. Вероятно будет, а если нет, то исправить нужно будет совсем немного.
0
alpik alpik 8 лет назад #
Подскажите пожалуйста что подправить, очень уж необходимо решение внедрить
0
alpik alpik 8 лет назад #
Содержимое архива распаковал с заменой, в шаблоне все в что в теге <script type="text/javascript"> обернул в {literal}
= > в итоге ошибка HTTP ERROR 500 , похоже еще где-то надо править...
0
Def Def 8 лет назад #
в компоненте мапс он действует?

Еще от автора

InstantCMS 2.17.0 релиз-кандидат
Тестируем релиз-кандидат InstantCMS 2.17.0. От того, как мы с вами выявим баги в новой версии, зависит стабильность релиза.
Как собрать обновление и релиз InstantCMS
Небольшой экскурс в сборку дистрибутива установки и обновления InstantCMS с GitHub.
InstantCMS 2.14.0 release candidate
Здравствуйте Тестируем релиз-кандидат InstantCMS 2.14.0. От того, как мы с вами выявим баги в новой версии, зависит стабильность релиза.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.