Перенаправление внешних URL на страницу выхода - PullRequest
0 голосов
/ 26 января 2011

Как лучше всего перенаправить пользователей, которые запрашивают внешний URL-адрес, на какую-то прощальную страницу?

Я знаю, что могу усердно работать, чтобы установить какой-то модуль типа mod_rewrite. Но я не могу сделать какую-то функцию типа Page_OnRequest в global.asax или на главных страницах?

Ответы [ 2 ]

5 голосов
/ 26 января 2011

Эти URL-адреса могут фактически указывать на страницу перенаправления на вашем собственном сайте, прежде чем перенаправлять их в конечный пункт назначения:

<a href="redirect.aspx?url=stackoverflow.com">Stack Overflow</a>

Затем вы можете делать с перенаправлением все, что захотите, и это можетработать так, чтобы перенаправление скрывало URL, кодировало его, добавляло параметры и т. д.

3 голосов
/ 26 января 2011

Самый простой способ - использовать jQuery для перехвата события нажатия на все теги на странице:

$(function(){

  $('a').click(function(e){
    var proceed       = true ;
    var anchor        = $(this) ;
    var href          = anchor.attr('href') ;
    var isExternalUrl = CheckForExternalUrl( href ) ;

    if ( isExternalUrl )
    {
      e.PreventDefault() ;
      window.location = "outside_link.aspx?url=" + href ;
      proceed         = false ;
    }
    return proceed ;
  }) ;
}) ;

Любая ссылка, по которой щелкают, запускает обработчик события. Внешние URL приведут к загрузке страницы outside_link.aspx с целевым URL в строке запроса. Внутренние URL будут вести себя нормально.

Simple.

...