2010-10-19 79 views
2

我使用ajax在我的網站上加載頁面。 每次頁面加載我通過使用javascripthtaccess重定向#!在網址中

現在我想做的是,當有人通過輸入來我的網站設置它通過window.loaction更改瀏覽器的URL

http//www.example.com/old/page/#!/new/page/ 

時間網址

http//www.example.com/old/page/#!/new/page/ 

他應該自動重定向到

http//www.example.com/new/page/ 

這也是在Facebook上發生的。

有人可以幫助我與所需的.htaccess代碼實現相同。

在此先感謝

回答

2

我覺得沒有什麼過去在您的網址#符號是在服務器端偶可見。所以htaccess,php等都不會知道哈希值是在那裏開始的。我認爲,爲了解決這個問題,你將不得不使用客戶端重定向。

window.onload = function(){ 
    // First we use a regex to check for the #! pattern in the hash  
    if(window.location.hash.match(/\#\!/i)){ 
    // If we found a match, use substring to remove the #! and do a redirect 
    window.location = window.location.hash.substring(2); 
    } 
}; 

本示例將在頁面加載時立即重定向用戶。不幸的是,以這種方式進行重定向並不能幫助搜索引擎重新編制您的網站,但這只是使用基於JavaScript或基於哈希的網址的缺陷之一。

+0

我嘗試使用hte以下客戶端腳本 requestedURL =「」+ window.location +「」; position = requestedURL.search(「#!」);如果(位置!= -1)newpage = requestedURL.substr(position + 2); \t requestedURL =「」; \t window.location = domainame + newpage; } 但這個腳本的問題在於它每次執行ajax調用時都會執行 – 2010-10-19 20:39:13

+0

如果您可以通過javascript提示某種方式來執行相同的操作,那將是非常好的 – 2010-10-19 20:41:25

+0

添加了一個示例。它在我的Web服務器上工作,但您可能需要稍微調整以適應您的環境。 – 2010-10-20 01:53:01