在HTML5 History API中使用虚假URL

时间:2011-07-12 23:54:18

标签: html5 browser-history pushstate

我正在开发一个网站,该网站有一个基本滑块,左侧和右侧有4张幻灯片,只显示页面中心的1张幻灯片。所有幻灯片的内容都加载在一个页面上,每个页面都在它自己的div中。

<div id="slider-box">
    <div class="slide">HTML and bg image</div>
    <div class="slide">HTML and bg image</div>
    <div class="slide">HTML and bg image</div>
    <div class="slide">HTML and bg image</div>
</div>

没什么特别的。此外,每张幻灯片都与一个链接相关联:

<a href="/gallery">Gallery</a>
<a href="/links">Links</a>
<a href="/about">About</a>
<a href="/resources">Resources</a>

所以我开始使用History.js将每张幻灯片与其各自的链接相关联; www.example.com/about。我可以毫无问题地改变国家;后退和前进工作以及URL更改。

我确实注意到的是,如果我使用虚假网址加载页面,例如www.example.com/about,页面会返回404.

我可以做些什么来阻止404发生,还要确保页面被带到正确的幻灯片?

我应该采取另一种方式吗?

我正在使用jQuery和HTML5进行LAMP堆栈。

我真的被困在这一个......谢谢!

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您实际上必须创建/about/gallery等页面。想想看 - 历史API只能在一个页面内工作。它操纵地址栏所说的内容,但它不会自己创建实际的URL。

我的解决方案是使用类似mod_rewrite的东西。 /about会重定向到/?p=about之类的内容,该内容会加载您的网页,相应的div已经打开。其他幻灯片也一样。只有这样,您才能使用History API的功能。

答案 1 :(得分:0)

我们的Web服务器处理HTTP 404错误,请参阅您的Web服务器文档,了解如何使用重定向等创建自定义错误页面。如果您使用的是Microsoft Internet Information Server 7,请查看此处http://blogs.iis.net/rakkimk/archive/2008/10/03/iis7-enabling-custom-error-pages.aspx