Приводим внешние ссылки в человеческий вид
November 15, 07 by TracKerСейчас на разных сайтах часто можно заметить ссылки на внешние ресурсы через какой-то внутренний скрипт, например такие: http://tracker2k.kiev.ua/redirect.php?http://google.com
Причины делать такие ссылки у каждого свои: кто-то продает место под ссылки в sape.ru или еще где-то и экономит внешние ссылки, кто-то не хочет, чтобы их индексировали роботы, кто-то считает переходы. В моем случае ссылки продаются в sape.ru
и, честно говоря, меня не устраивал их внешний вид в браузере, и я решил это дело исправить и написал простенький скрипт на JavaScript с использованием jQuery и вставил его в header.php (шаблон верхней части страницы в WordPress’е).
Сам код выглядит так:
<script TYPE="text/javascript"> $(document).ready(function(){ $("a").each(function(i){ var remove_str = 'http://tracker2k.kiev.ua/redirect.php?'; var str = this.href.substring(0, remove_str.length); if (str == remove_str) { this.href = this.href.substring(remove_str.length); } }); }); </script>
Работает это так: как только страница загрузилась мы ищем все ссылки на странице которые начинаются с remove_str, после чего удаляем из них remove_str. И все
В итоге получаем, уменьшение количества внешних ссылок за счет использования вашего внутреннего скрипта и человеческий вид ссылок в браузере за счет моего скрипта
Конечно это не применимо для подсчета переходов, потому что как только ссылка в браузере будет изменена переход будет осуществляться напрямую, а не через ваш скрипт.
Чтобы использовать у себя, в remove_str нужно указать с чего начинается ссылка, этот текст впоследствии будет из нее удален. Остальное можно оставить как есть и использовать. Код вставляется в тело HTML, то есть сразу после тега BODY.
Единственный замеченный минус – код не всегда до конца выполняется в Internet Explorer’е.
Возможно Арсений Фёдоров заинтересуется
Арсений Фёдоров Says: 16.11.07 at 00:45
Я интересуюсь, как бы мне ссылки убрать подобным образом по всему блогу – но не все, некоторые оставить.
Убираем внешние ссылки by TracKer’s blog Says: 17.11.07 at 14:25
[...] писал про искоренение “ссылок через скрипт-редирект” [...]
NOMAD Says: 19.01.08 at 10:22
А вот меня интересует, как избавиться от внешних ссылок в комментариях? Например я написал коммент, а там мой сайт указан. Как с ними быть?
TracKer Says: 19.01.08 at 11:27
NOMAD, а какой у вас движек?
Если WordPress, то есть два способа.
1) Самый, простой, это подредактировать темплейт, чтобы ссылки вообще не отображались (но это помоему не правильно).
2) Установить фильтры на те части страницы на которых необходимо произвести замену ссылок. (Напишу об этом пост в ближайшее время).
Ну и есть еще один способ, но довольно кривой и проблематичный, однако если в API WordPress’а не разбираетесь и нужно срочно, то можно применить. (Хотя глюки обеспечены:)). Так вот, можно в начале темплейта установить хук на вывод с помощью функции ob_start, а в конце сделать ob_get_contents, после чего в полученном тексте произвести замены требуемых URL, и выполнить:
ob_clean();
echo $ваша_переменная_с_измененным_содержанием;
Приблизительно так.
Как избавиться от внешних ссылок в WordPress : TracKer’s blog Says: 20.01.08 at 21:41
[...] от внешних ссылок в WordPress January 20, 2008 under PHP, Programming Спросил меня недавно NOMAD “Как избавиться от ВС в [...]
Убираем внешние ссылки - TracKer’s blog Says: 19.01.09 at 12:18
[...] писал про искоренение “ссылок через скрипт-редирект” [...]
Krylov » Wordpress – экранирование внешних ссылок Says: 09.04.10 at 16:05
[...] http://tracker2k.kiev.ua/ubiraem-vneshnie-ssylki.html http://tracker2k.kiev.ua/privodim-vneshnie-ssylki-v-chelovecheskij-vid.html Categories: Web Tags: javascript, php, wordpress Комментарии (0) [...]
lego Says: 23.05.10 at 14:11
Как ето все сделать если самописный двиг?
TracKer Says: 04.06.10 at 11:08
lego, фильтровать контент… Самый простой выход это “ob_start()“
Pashok Says: 21.11.10 at 13:00
Интересный метод, вот начал интересоваться этой темой, т.к. разместил сапу на своих блогах и они с индекса яши полетели! Вычитал еще интересный способ: создание массива ссылок, потом через метод get получение по id ссылки. Получается что ссылки все внутренние,правда минус – придется ручками пополнять массив ссылок. Ваш метод интереснее тем что не надо ручками ничео делать, надо попробовать. Может есть те кто уже пробовал? Какие результаты?