Новости

Drupal: ховаємо зовнішні посилання на сайті від індексування

  1. невелике доповнення
  2. ще доповнення

Чим більше посилань на ваш сайт, тим вище його індекс цитування, і значить він більше вагою в очах пошукових систем. У той же час показники вашого сайту можуть знижуватися, якщо на ньому розміщені посилання на інші сайти. Таким чином, зовнішні посилання на інші сайти краще ховати.

Слід тільки обов'язково розділяти зовнішні посилання і внутрішні. Останні - це посилання на сторінки вашого ж сайту. Тобто ви з одних сторінок свого сайту посилаєтеся на інші. Такі посилання навпаки дуже корисні для сайту і їх чіпати не варто.

Для сайтів на движку Drupal є цілком непоганий модуль -, який дозволяє автоматично перетворювати посилання в нодах. Є версія для Drupal 7. За замовчуванням модуль робить замість звичайних посилань редіректи.

Припустимо, була в публікації зовнішнє посилання test.ru, стала ваш_сайт.ru / ext_link? Url = test.ru

В принципі, як можна бачити, спочатку поставлена ​​мета в даному випадку вже досягається, - була зовнішня посилання, стала внутрішня. Однак, я вважаю, що ховати зовнішні посилання слід краще. Найпростіший спосіб - це закодувати їх.

На жаль, автором модуль External Link Page оновлюється рідко. Та й навряд чи він захоче додати в нього кодування посилань. На просторах інтернету знайшовся трохи готовий варіант даного модуля, де були зроблені рівно два зміни. По-перше, додано кодування посилань з використанням алгоритму MIME base64. По-друге, виправлена ​​помилка, через яку внутрішні посилання на сайті теж оброблялися разом із зовнішніми.

Я рекомендую використовувати саме модифікований варіант модуля ( Модуль External Link Page Mod. ). Далі опишу порядок його налаштування і використання.

Встановлюємо модуль і йдемо в його налаштування:

За замовчуванням модуль External Link Page не відразу перенаправляє користувача по зовнішньому посиланню, а робить це через проміжну сторінку. По-моєму це дуже погана ідея! Потрібно поважати своїх читачів. Навіщо ж їх кожен раз тикати носом? Загалом, щоб такого не було, перший параметр «Затримка перенаправлення» встановлюємо в 0.

Параметр «Посилання сторінки» задайте так, як більше вам подобається. Я віддаю перевагу «go», так як це коротко і ясно. Можете залишити за замовчуванням - «ext_link». Також відзначте параметри «Нове вікно» і «Не слідувати». Що вони роблять, думаю, зрозуміло і так з коментарів.

Збережіть налаштування і перейдіть в меню «Конфігурація» → «Формати введення».

Тут для потрібних форматів введення потрібно задіяти автоматичну заміну зовнішніх посилань. Можете виконати описані далі операції для всіх наявних у вас форматів введення.

І так, по-перше, необхідно включити фільтр «Сторінка зовнішніх посилань». По-друге, потрібно обов'язково переконатися, щоб даний фільтр в порядку фільтрів перебував після «Перетворювати адреси в посилання». Після змін не забудьте зберегти настройки.

Після змін не забудьте зберегти настройки

Практично все готово. Зайдіть в меню «Користувачі» → «Права доступу» і встановіть для модуля External Link Page і зокрема для Access the external link page можливість доступу для всіх, в тому числі для гостей. Останнє - перейдіть в меню «Конфігурація» → «Продуктивність» і відчистити кеш. Тепер можна перевіряти свої сторінки (ноди). Всі зовнішні посилання на них повинні бути вже закодовані.

невелике доповнення

Відразу скажу, що ці дії НЕ обов'язкові. Швидше вони для параноїків на зразок мене. :)

Алгоритм кодування MIME base64 - це хороший варіант, але його не складає труднощів розкодувати. Причому я підозрюю, що це, можливо, вже вміють робити і пошукові системи. Можна ускладнити їм завдання. Сенс простий. Після кодування посилання в код в певне місце (наприклад, на початок рядка) додається хоча б один символ (цифра або буква). Отриманий в результаті код стає некоректним і розкодувати його в такому вигляді правильно неможливо. Для своїх цілей, перед розкодування ми встановлений символ видаляємо і у нас все працює.

Реалізація ідеї проста. У модулі External Link Page потрібно трохи підправити два файли.

У файлі ext_link_page.module знайдіть терміни:

function base64url_encode ($ data) {return rtrim (strtr (base64_encode ($ data), '+ /', '-_'), '='); }

І додайте будь-які символи таким чином:

function base64url_encode ($ data) {return "q1" .rtrim (strtr (base64_encode ($ data), '+ /', '-_'), '='); }

У файлі ext_link_page.page.inc знайдіть рядки:

function base64url_decode ($ data) {return base64_decode (str_pad (strtr ($ data, '-_', '+ /'), strlen ($ data)% 4, '=', STR_PAD_RIGHT)); }

І додайте одну додаткову рядок:

function base64url_decode ($ data) {$ data = mb_substr ($ data, 2); return base64_decode (str_pad (strtr ($ data, '-_', '+ /'), strlen ($ data)% 4, '=', STR_PAD_RIGHT)); }

Готово. Чистіть знову кеш сайту (як ми робили вище) і перевіряйте результат.

ще доповнення

Як з'ясувалося сьогодні (20.08.2014), додаткові знаки в зашифрованою рядку - це плюс вашому сайту не тільки по частині пошукових систем. Я отримав лист, який містив СПАМ. Лист мені переслав людина, яка його спочатку отримав і який просто побачив, що в ньому посилання має вигляд:

https://d1mon.com/go?url=...

Сподіваюся, зрозуміло, що сталося? Спамери просто підставляють в мій URL необхідний їм адресу в зашифрованому вигляді. Таким чином, в листі посилання насамперед наводять на мій сайт, але, по суті, вона повинна вести на інший сайт.

Природно, спамерських редирект не працював, адже посилання була просто закодована з використанням base64, без застосування додаткових символів, які ми додавали з вами вище.

Після цього випадку я ще ускладнив у себе на сайті кодування посилань, про всяк випадок. :) Скидання кеша оновив всі посилання на сайті. Хоча, може, це і не мало особливо сенсу. Сумніваюся, що спамери будуть обтяжувати себе і кодувати свої посилання із застосуванням додаткових символів, щоб редирект на моєму сайті працював.

Ru / ext_link?
Навіщо ж їх кожен раз тикати носом?
Com/go?
Сподіваюся, зрозуміло, що сталося?

Уважаемые партнеры, если Вас заинтересовала наша продукция, мы готовы с Вами сотрудничать. Вам необходимо заполнить эту форму и отправить нам. Наши менеджеры в оперативном режиме обработают Вашу заявку, свяжутся с Вами и ответят на все интересующее Вас вопросы.

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: