1

Тема: Редирект внешних ссылок через промежуточную страницу

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

Плагинов для WP, осуществляющих редирект создано довольно много, но среди них удалось найти лишь один, который бы отличался простотой и реализовывал редирект через промежуточную страницу, заменяя таким образом все внешние ссылки на внутренние - WP Js External Link Info 1.21. На текущий момент поддерживает WP до версии 3.3.2 (последнее обновление 10 февраля 2012). Русскоязычную адаптацию WP Js External Link Info 1.21 можно скачать внизу поста.

Плагин до безобразия прост в обращении. После установки не нужно долго разбираться с настройками - нужно заполнить всего несколько полей:

- Файл редиректа (путь): В данном поле необходимо указать путь до файла, содержащего шаблон промежуточной страницы. Можно оставить поле пустым - тогда по умолчанию будет использоваться файл redirect.php, находящий в папке с плагином. Но при этом URL редиректа будет выглядеть не очень "красиво" и слишком громоздко:

поэтому лучше создать в корневой директории специальную папку, например, /goto/ и переместить туда файл redirect.php и переименовать его, скажем, в rt.php.
Тогда ссылка на внешний ресурс будет немного "покороче":

- Прямое перенаправление: Если не хотим использовать промежуточную страницу, то ставим галочку в боксе - перенаправление будет происходить сразу.

- Перенаправление для...: Здесь можно отменить перенаправление для зарегистрированных пользователей, но оставить для гостей.

- Открывать в Новом окне: Понятно без объяснений.

- Домены - Исключения: Здесь необходимо перечислить домены, ссылку на которые не нужно редиректить - т.е. исходящая внешняя ссылка никогда не преобразуется.

Русскоязычная версия WP Js External Link Info 1.21 ниже:

Post's attachments

Attachment icon wp-js-external-link-info.zip 9.98 kb, 757 downloads since 2012-05-21 

Поделиться

2

Re: Редирект внешних ссылок через промежуточную страницу

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

SV пишет:

но на некоторое время пользователя можно еще задержать и даже предложить ему что. Например можно поблагодарить пользователя за посещение сайта и предложить ему подписаться на рассылку новостей и т.д...

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

Поделиться

3

Re: Редирект внешних ссылок через промежуточную страницу

Нужно отредактировать файл redirect.php
Найти в нем строку

<meta http-equiv="refresh" content="10; url=<?php echo $url; ?>">

и вместо значения 10 поставить любое другое свое значение (10 - это десять секунд).

Поделиться

4

Re: Редирект внешних ссылок через промежуточную страницу

Еще появилась одна проблема с WP Js External Link Info - в поле для белого списка можно поставить только один домен, ссылки на который будут идти без редиректа и без шифровки.

Пробовал ставить домены с/без _http://, пробовал каждый домен с новой строки, пробовал через пробел, пробовал через запятую - результат один и тот же: более одного домена в белом списке не работает. Что делать?

Поделиться

5

Re: Редирект внешних ссылок через промежуточную страницу

Чтобы исправить эту авторскую недоработку  нужно немного отредактировать файл плагина wp-js-external-link-info.php

Находим в файле участок кода ( функция js_external_link_check_local($href, $blogurl) ):

    if ($isext) {
        $local = (
                     (strpos($href, $blogurl))
                        || (stripos($href, get_option('redirect_exclude')))
                           );

   

и заменяем этот участок кода следующим:

        $url_cur_ar = explode("\r\n", get_option('redirect_exclude'));
    
    if ($isext) {
        foreach($url_cur_ar as $url_cur_arr){ if (stripos($href, $url_cur_arr) !== false) { $cur_arrg = true; } 
                                            }
        $local = ( (strpos($href, $blogurl)) || ($cur_arrg) );

Теперь в поле "Исключений для Белого списка" можно вводить неограниченное количество URL.

Замечание: Если Вы хотите, чтобы ссылка на Ваш собственный сайт, которая в тексте Ваших новостей имеет, например, следующий URL: http://softvopros.ru (без слеша "/" на конце), так же не редиректилась, то Вам необходимо тоже включить собственный сайт в Исключения (и конечно же без слеша на конце). Иначе, без редиректа будут все ссылки, которые принадлежат сайту, кроме той, на которую я указал выше.

Т.е. поле Исключения должно выглядеть примерно так:

URL Вашего сайта
Остальные URL Белого списка
........

Домены необходимо заносить по одному с каждой строки (без http://), например:

softvopros.ru
yandex.ru
google.com
и т.д.

Спасибо сказали: Tome Bee1

Поделиться

6

Re: Редирект внешних ссылок через промежуточную страницу

А нельзя ли сделать так, чтобы WP Js External Link Info умел так же работать с ссылками которые в дополнительных полях?

Поделиться