2011-10-05 163 views
0

這只是一種普遍的信息問題,以便我可以在稍後在網站中實現它,但我想知道如何facebook他們的mod_rewrite。Facebook喜歡mod_rewrite與ajax頁面加載

爲了更具說明性,通常當網站有任何類型的Ajax頁面加載時,您會在地址欄中看到#/ page-name。在Facebook上,網址就像普通的友好網址一樣。你將如何使用mod_rewrite來重寫類似的東西?或者是別的什麼?

+0

問題不明確。解釋哪個確切的行爲看起來對你來說很奇特(但很可能它不是mod_rewrite的工作)ps:我敢打賭'歷史重寫',但讓我們等待你的進一步解釋 – zerkms

+0

可能重複[Facebook和Ajax](http://臉書.stackoverflow.com/questions/5792859/facebook-and-ajax) – ifaour

回答

1

我也是,以爲它是mod_rewrite。但是,由於頁面是異步加載的,因此不會調用mod_rewrite。我搜索了一下,它回到了SO,並與此鏈接,詳細說明pushState()方法,這可能有所幫助。

https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history

它可能無法正常降級到不使用HTML5瀏覽器,但話又說回來,它可能。讓我知道它是如何爲你工作的。

+0

大多數使用'pushState'看過的網站優雅地降低了散列技術。 – ceejayoz

0

PushState單是不是所有瀏覽器和版本都很友好,所以如果你想讓它很好地降級,你需要做大量的HTML5功能支持檢查和什麼。幸運的是,有一個很好的軟件包叫做歷史JS,可以很好地處理這個問題。雖然它提供了大量的選項來定製你的需求,但你基本上可以插入它並且不必擔心在各種瀏覽器上的兼容性/降級問題。

https://github.com/browserstate/History.js