将外部URL重定向到退出页面

时间:2011-01-26 15:11:12

标签: c# asp.net global-asax

将请求外部网址的用户重定向到某种告别页面的最佳方法是什么?

我知道我可以努力安装某种类似mod_rewrite的模块。但是我不能在global.asax或母版页中做某种Page_OnRequest类型的函数吗?

2 个答案:

答案 0 :(得分:5)

您可以将这些网址实际指向您自己网站上的重定向网页,然后再将其转发到最终目的地:

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

然后你可以通过重定向做任何你想做的事情,它可以工作,以便重定向隐藏网址,编码,添加参数等。

答案 1 :(得分:3)

最简单的方法是使用jQuery挂钩页面上所有标签上的click事件:

$(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。内部网址将正常运作。

简单。

相关问题