javascript - 如何删除#!来自网址

标签 javascript url url-rewriting

我正在努力改变

http://domain.co.uk/#!/pagename

http://domain.co.uk/pagename

我正在考虑重写 URL,然后意识到,因为它是单页网站,所以这是行不通的,所以我陷入了困境!

有没有办法在现有的代码库(一个快速的 JavaScript 函数)下做到这一点?或者这只是我必须忍受的事情?

!我猜测是后者(我想可能会更改为domain.co.uk#pagename),但很高兴被证明是错误的!

最佳答案

基础知识很简单:

if (location.hash && (location.hash.substr(1,1) === "!")) {
    location.replace(location.toString().replace('#!', "/"));
};

您只需确保新网址首先有效即可。

这意味着:

  1. 更新客户端代码以使用pushState 和 friend (这样您就可以停止生成hashbang URI)
  2. 更新服务器端代码,以便它能够以正确的状态交付网站的每个页面,而不依赖于客户端代码(以便 (a) 任何页面都可以快速高效地加载,并且 (b) JavaScript 成为性能提升工具奖金而不是搜索引擎讨厌的依赖)

关于javascript - 如何删除#!来自网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23514715/

相关文章:

Javascript:选择时防止下拉菜单打开

.htaccess - htaccess 两个参数 mod-rewrite 问题

reactjs - 持有 React SPA 的子应用程序上的 IIS URL 重定向

javascript - 后台同步未在 serviceworker 中触发事件

javascript - 如何从Javascript中的多维数组中找到距离当前日期最近的日期

JavaScript - 通过更改类名来折叠元素

Android - 显示来自 URL 的视频缩略图

javascript - 如何从 location.search 获取特定参数?

url - 通过 IIS URL 重写模块删除 URL 的特定部分

nginx - activecollab 5 nginx url重写不起作用