Редирект внешних ссылок в IPB 3

Преимущества данного хака:
• Все внешние ссылки открываются в новом окне, индксация настраивается в админцентре (Системные настройки, Форумы, Темы, сообщения и опросы, Добавлять rel=\»nofollow\» и rel=\»noindex\» к размещенным ссылкам).
• Внутренние ссылки открывается в этом же окне и индексируются поисковиками.
• Внутренними ссылками считаются с поддоменом www и без него.

Установка

Папку go вместе с файлом index.php скопируйте в корень форума.

Далее открываем файл ./admin/sources/classes/bbcode/custom/defaults.php
Ищем код:

return "<a href='{$option}' class='bbc_url' title='{$_title}'{$rel}>{$content}</a>";

Для версий 3.1.2 и более старых ищем следующий код:

return "<a href='{$option}' class='bbc_url' title='{$this->lang->words['bbc_external_link']}'{$rel}>{$content}</a>";


И перед данным кодом добавляем:

        if (strtolower(str_replace('www.', '', $_SERVER["HTTP_HOST"])) != strtolower(str_replace('www.', '', parse_url($option, PHP_URL_HOST))))
        {
            $option = $this->settings['board_url'].'/go/?'.$option;
            $rel .= ' target=\\'_blank\\'';
        } else {
            $rel = '';
        }

Архив с папкой: [attachment=18]

Редирект внешних ссылок в IPB 3: 11 комментариев

  1. Поправьте! я голову сломал почему не открывается то что нужно!

    $option = $this->settings['board_url'].'/go/?url='.$option;

    То есть лучше:
    $option = $this->settings['board_url'].'/go/index.php?url='.$option;

  2. Здравствуйте. Спасибо за скрипт — полезный. Только при ссылке вида допустим WhyMax.ru — делает редирект. Считает — внешей ссылкой. (При использовании заглавных букв)

  3. Попробуйте так:

            if (strtolower(str_replace('www.', '', $_SERVER["HTTP_HOST"])) != strtolower(str_replace('www.', '', parse_url($option, PHP_URL_HOST))))
            {
                $option = $this->settings['board_url'].'/go/?'.$option;
                $rel .= ' target=\\'_blank\\'';
            } else {
                $rel = '';
            }

  4. Извините, но после установки вашего кода в default.php перестали открываться страницы с топиками — белая страница. удаление кода из default.php ничего не дало. чистка кэшей тоже. в чем дело? IPB3.1.4 с ЧПУ

  5. Siri,
    Дело не в этом коде, он отвечает только за парсинг ссылок при редактировании сообщений.
    Тем более если после удаления кода ничего не изменилось.
    На IPB 3.1.4 все работает, проверено многими форумами 🙂

  6. Помогла только установка файла default.php из бэкапа для восстановления работы форума. так в чем же дело? возможно, этот файл как то кэшируется на сервере…

  7. Ребята, у меня получается статичная страничка редиректа, ссылка на ней не работает — жмешь, и просто страница обновляется… расскажите: почему так, и что делать, пожалуйста)

Добавить комментарий