Помогите с редиректом для всех внешних ссылок

Статус
В этой теме нельзя размещать новые ответы.

ka4ek100kg

Создатель
Регистрация
13 Июл 2010
Сообщения
17
Реакции
1
Помогите с редиректом для всех внешних ссылок. Мне надо, чтобы все внешние ссылки, ведущие с моего сайта анонимизировались(проходили через сайт anonym.to).

Например, на моем сайте Для просмотра ссылки Войди или Зарегистрируйся лежит внешняя ссылка Для просмотра ссылки Войди или Зарегистрируйся, ведущая на сайт Для просмотра ссылки Войди или Зарегистрируйся, то при нажатии пользователя на эту ссылку пойдет редирект на такую ссылку
Код:
http://www.my_site.ru/link.php?http://anonym.to?http://www.luboi_sait.ru

Т.е. надо создать файл link.php в корне моего сайта и прописать в нем такой редирект для всех внешних ссылок. Что именно надо прописать в этом файле? И что надо прописать в .htaccess для такого редиректа всех внешних ссылок(по маске наверное)?

Это надо сделать именно посредством php и(или) .htaccess, а не через ява скрипт с сайта anonym.to
 
внешние ссылки не проходят через htaccess, проходят через браузер. Так что придётся заменят с php все внешние ссылки на новые
PHP:
http://www.my_site.ru/link.php?<?=urlencode("http://anonym.to?".$staraya_ssylka) ?>
а link.php такой
PHP:
<?
header("Location: ".urldecode($_SERVER['argv'][0]));
?>
или ещё пример с яваскриптом который заменяет все внешние ссылки после загрузки страницы
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $("a").each(function(i){
        var redirect = new RegExp("http://","gi");
        if(redirect.test($(this).attr("href"))){
            $(this).attr("href", "http://www.my_site.ru/link.php?"+encodeURIComponent("http://anonym.to?"+$(this).attr("href")))
        }
    });
});
</script>

</head>

<body>
<a href="http://www.nulled.cc">nulled</a>
<a href="#">local</a>
</body>
</html>
 
Так что придётся заменят с php все внешние ссылки на новые
Т.е. надо все старые ссылки переписывать? Ок.
А как же быть, к примеру, с форумом - в нем пользователь пишет обычную ссылку, а потом она автоматически заменяется на ссылку с редиректом на anonym.to Т.е. при создании обычной ссылки она сразу заменяется на нужную. Мне и нужно именно автоматическое перенаправление с обычных ссылок.
К примеру, посмотрите на внешние ссылки ЭТОГО ФОРУМА, допустим в ЭТОМ СООБЩЕНИИ - там пользователь при создании своего сообщения просто пишет обычную ссылку, а потом после создания сообщения она автоматически заменяется на ссылку с редиректом на anonym.to...

Или даже взять пример с этого форума Нуллед - пользователь пишет обычную внешнюю ссылку, а она автоматически проходит через файл r.php, а потом уже ведет на нужный внешний сайт...
 
Переписывать не нужно если перед показом сообщения его пропарсить на поиск ссылок и заменить все старые ссылки новыми, как-то так
PHP:
$text = preg_replace('#"((.+)://[^"]+)"#sie', "'http://www.my_site.ru/link.php?'.urlencode('http://anonym.to?'.urldecode('$1'))", $text);
или сохранять сообщение уже с новыми ссылками, тогда надо будет во всех старых сообщениях переписать ссылки на новые.
Возможно для форумов плагины есть которые это делают.
 
Для большинства форумных движков уже сделали эти плагины, также и для сайтовых cms такие видел. Заменять все внешние ссылки должен скрипт который их выводит, в данном случае форум
 
У меня вопрос на этуже тему, но "модифицированный": как спрятать/заблокировать все ссылки со страницы вида Для просмотра ссылки Войди или Зарегистрируйся... ? (ссылки формируются в скрипте плеера yahoomediaplayer)
пытался через .htaccess но как оказалось redirect не обрабатывает внешних ссылок (либо я не смог правильно параметры задать)
приведенный выше пример с jquery срабатывает "чересчур" агрессивно и блокирует саму работу скрипта (как я понял он абсолюно все ссылки блокирует, а надо только начинающиеся на http://search.")
Собственно сам нашел ответ, если когото также интересует как избавится от линка на поисковик, то надо после вызова скрипта добавить:
PHP:
<script type="text/javascript">
   // Disable Yahoo! Media Player search links
   function apiReadyHandler(){
      YAHOO.MediaPlayer.onMediaUpdate.subscribe(DisableYahooLinks);
      YAHOO.MediaPlayer.onTrackStart.subscribe(DisableYahooLinks);
      setTimeout(DisableYahooLinks, 2000);
   }
   function DisableYahooLinks(){
      DisableLink(document.getElementById('ymp-meta-track-title'));
      DisableLink(document.getElementById('ymp-meta-artist-title'));
      DisableLink(document.getElementById('ymp-meta-image'));
      DisableLink(document.getElementById('ymp-meta-album-title'));
   }
   function DisableLink(el){
      if(el){
         el.href = 'javascript:void(0)';
         el.onclick = function(){ return false; };
      }
   }
   YAHOO.MediaPlayer.onAPIReady.subscribe(apiReadyHandler);
</script>
 
В плеере можно всё поизменять тексты, ссылки, стили. Плеер флешовый тогда ещё возможно запустить интернет радио типа shoutcast в mp3 формате надо только в ссылке добавить ;.mp3 чтоб добавил в список.

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<script type="text/javascript" src="http://mediaplayer.yahoo.com/js"></script>

<script type="text/javascript">
function change(){
    
    //текст в плеере заменяем
    document.getElementById('ymp-getplayer').innerHTML = 'мой супер плеер!';
    document.getElementById('ymp-getplayer').href = 'http://nulled.cc';
    
    //секретное сообщение правый клик на логотипе
    document.getElementById('ymp-secret-msg').innerHTML = 'мой супер плеер!';
    //или спрятать логотип
    document.getElementById('ymp-yahoo-logo').style.display = 'none';
    
    //ссылка на картинке альбома заменяем
    document.getElementById('ymp-meta-image').href = 'http://nulled.cc';
    
    //ссылка на названии в плеере заменяем
    document.getElementById('ymp-meta-track-title').href = 'http://nulled.cc';
}

var apiReadyHandler = function (){
    
    
    YAHOO.MediaPlayer.onMediaUpdate.subscribe(change);
    YAHOO.MediaPlayer.onTrackStart.subscribe(change);
    YAHOO.MediaPlayer.onPlaylistUpdate.subscribe(change);
}
YAHOO.MediaPlayer.onAPIReady.subscribe(apiReadyHandler);
</script> 


</head>

<body>

<a href="http://mediaplayer.yahoo.com/example1.mp3">First link</a>
<a href="http://mediaplayer.yahoo.com/example2.mp3">Second link</a>
<a href="http://mediaplayer.yahoo.com/example3.mp3">Third link</a>
<a href="http://205.188.215.226:8006;.mp3">Хардкор в массы!</a>

</body>
</html>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху