这只是一种普遍的信息问题,以便我可以在稍后在网站中实现它,但我想知道如何facebook他们的mod_rewrite。Facebook喜欢mod_rewrite与ajax页面加载
为了更具说明性,通常当网站有任何类型的Ajax页面加载时,您会在地址栏中看到#/ page-name。在Facebook上,网址就像普通的友好网址一样。你将如何使用mod_rewrite来重写类似的东西?或者是别的什么?
这只是一种普遍的信息问题,以便我可以在稍后在网站中实现它,但我想知道如何facebook他们的mod_rewrite。Facebook喜欢mod_rewrite与ajax页面加载
为了更具说明性,通常当网站有任何类型的Ajax页面加载时,您会在地址栏中看到#/ page-name。在Facebook上,网址就像普通的友好网址一样。你将如何使用mod_rewrite来重写类似的东西?或者是别的什么?
我也是,以为它是mod_rewrite
。但是,由于页面是异步加载的,因此不会调用mod_rewrite
。我搜索了一下,它回到了SO,并与此链接,详细说明pushState()
方法,这可能有所帮助。
https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history
它可能无法正常降级到不使用HTML5浏览器,但话又说回来,它可能。让我知道它是如何为你工作的。
大多数使用'pushState'看过的网站优雅地降低了散列技术。 – ceejayoz
URL的哈希部分永远不会到达你的服务器(我不认为)。你用javascript抓住它并用ajax加载页面。 请参阅http://code.google.com/web/ajaxcrawling/docs/getting-started.html了解相似之处。
http://benalman.com/projects/jquery-hashchange-plugin/是一个简单的方法来处理它。
他没有询问哈希爆炸。他询问了类似的行为,但**没有**锚点 – zerkms
PushState
单是不是所有浏览器和版本都很友好,所以如果你想让它很好地降级,你需要做大量的HTML5功能支持检查和什么。幸运的是,有一个很好的软件包叫做历史JS,可以很好地处理这个问题。虽然它提供了大量的选项来定制你的需求,但你基本上可以插入它并且不必担心在各种浏览器上的兼容性/降级问题。
问题不明确。解释哪个确切的行为看起来对你来说很奇特(但很可能它不是mod_rewrite的工作)ps:我敢打赌'历史重写',但让我们等待你的进一步解释 – zerkms
可能重复[Facebook和Ajax](http://脸书.stackoverflow.com/questions/5792859/facebook-and-ajax) – ifaour