2011-01-26 203 views
0

将请求外部URL的用户重定向到一个再见页面的最佳方式是什么?将外部URL重定向到退出页面

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

回答

3

最简单方法是使用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将正常运行。

简单。

5

你可以有这些URL实际上指向在自己的网站重定向页面上转发他们的最终目的地之前:

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

那么你可以做任何你重定向想要的,也可能是努力使重定向隐藏网址,编码它,添加参数等

+0

看来这是一个很常见的做法。 – DashTechnical 2011-01-26 15:18:22

+1

@DashTechnical - 这不是我参与的,因为它看起来有点太“大哥”,但它是我见过的在几个网站上雇佣的人。 – 2011-01-26 15:21:08