假设我们有一个网址http://localhost/english/startsite
,其中我们有以下代码,以使网站网址更具可读性:
(function () {
var windowOriginalLocation = window.location;
window.history.pushState("string", "Title", "home");
$(window).bind("onbeforeunload", function () {
window.history.pushState("string", "Title", windowOriginalLocation);
});
})();
每次为页面运行此匿名函数时,它都会将URL重写为http://localhost/english/home
- 这就是我们想要的解决方案。
问题
当用户按下F5或手动点击刷新按钮时,可能会发现onbeforeunload
事件会在刷新页面之前触发并恢复原始网址 - 但这不会发生,而是会触及砖墙HTTP Error 404 - Not Found
。
如何使用javascript / JQuery恢复正确的网址,以便浏览器在刷新时导航到正确的页面?