历史记录API - 告诉浏览器留在index.html,无论网址是什么

时间:2016-06-11 16:34:13

标签: javascript html .htaccess url url-rewriting

我正在学校项目上制作一页网页。我使用非常简单的历史API,只是更改URL,以便用户认为他在另一个页面上(但我隐藏并在页面上显示不同的元素) 它看起来像这样:

www.mypage.com/main www.mypage.com/slideshow

当我使用具有后退/前进历史记录按钮的应用程序时,它工作正常,但是当我想重新加载页面时,浏览器会尝试加载该虚假URL并导致崩溃。无论用户显示的是什么网址,我如何设置始终保持index.html?

我试图用htaccess管理这个,但我没有成功

2 个答案:

答案 0 :(得分:1)

您似乎没有使用后端,这是实现所需结果的唯一方法。 (如果我的假设是正确的)浏览器会给出错误(刷新后无法加载/slideshow),因为它试图获取该文件(来自本地计算机)但不存在。 SO answer explaining this well

因此,在您的示例中,您应该指示后端为所有路径呈现相同的视图(使用通配符),并根据给定的URL在前端进行显示。 / p>

您不必使用React-Router,而是创建一个路由器处理函数,该函数在每次刷新时运行(即加载javascript时),它根据路径(或URL)告诉您的页面要呈现的内容,按你的意愿打电话给他们)。

(您将知道将为每个网址运行javascript,因为后端已经使用通配符处理路由,*

答案 1 :(得分:0)

如果您只想将所有请求重写为一个网址,则只需

即可
RewriteRule ^ /index.html [L]