2013-03-28 35 views
0

這就是我想要解決...jQuery的重定向

  1. 只有當URL包含明確/foldername/index.htm & &/FOLDERNAME /上mydomain.com然後重定向到http://www.example.com
  2. 如果該URL包含任何 URL參數/foldername/index.htm?example應該不定向
  3. 其他所有網址不應該重定向

這是我的javascript是不完整的,但最終是什麼,我想解決...

var locaz=""+window.location; 
if (locaz.indexOf("mydomain.com") >= 0) { 
    var relLoc = [ 
     ["/foldername/index.htm"], 
     ["/foldername/"] 
    ]; 
    window.location = "http://www.example.com"; 
} 

這是爲宗旨,以管理,一些用戶在進行基於URL像書籤這樣的特殊方式。在不刪除頁面的情況下,我們希望監視在採取進一步行動之前有多少人正在瀏覽頁面。

+0

爲了什麼目的? – Jack

+0

我更新了描述和目的 – Evan

回答

1

不會在頁面總是在同一個域,也如果URL包含/foldername/pagename.htm不會也已經包括/foldername?所以&&檢查將是多餘的。

嘗試下面的代碼。

var path = window.location.pathname; 

if ((path === '/foldername' || path === '/foldername/index.html') && !window.location.search) { 
    alert('should redirect'); 
} else { 
    alert('should not redirect'); 
} 
+0

插孔,是的,它會在同一個域上,我也更新了頁面名稱的描述爲「index.htm」,因爲/ foldername /是沒有index.htm的文件夾名稱,因此應該有人訪問文件夾名稱或index.htm他們將被重定向。 – Evan

+0

所以基本上你可以去index.html要麼'/ foldername'或'/ foldername/index.html'? – Jack

+0

是的,這是對的。顯然我們有直接發送用戶到/ foldername /的鏈接,這與打擊/foldername/index.htm是一樣的,但總是有一個/後面的文件夾名稱是好的 – Evan

0
var url = window.location; 
var regexDomain = /mydomain\.com\/[a-zA-Z0-9_\-]*\/[a-zA-Z0-9_\-]*[\/\.a-z]*$/  
if(regexDomain.test(url)) { 
    window.location = "http://www.example.com"; 
} 
+0

這看起來是爲了解決參數和域,但不是當URL明確地「/foldername/pagename.htm」或「/ foldername /」 – Evan

+0

我已編輯帖子。 – alexP

0

熟悉location對象。它提供了pathname,searchhostname作爲屬性,從而避免了RegExp的麻煩(反正你最喜歡get wrong)。你正在尋找的東西:

// no redirect if there is a query string 
var redirect = !window.location.search 
    // only redirect if this is run on mydomain.com or on of its sub-domains 
    && window.location.hostname.match(/(?:^|\.)mydomain\.com$/) 
    // only redirect if path is /foldername/ or /foldername/index.html 
    && (window.location.pathname === '/foldername/' || window.location.pathname === '/foldername/index.html'); 

if (redirect) { 
    alert('boom'); 
}