2011-01-26 133 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