我正在使用 HTML5 的 History API(通过 History.js)来动态重写 URL。我希望它们采用以下格式:
http://www.example.com/example/article/page
其中“文章”和“页面”均由 History API 设置。
但是,这并不像预期的那样工作,因为 History.js 提供的pushState
orreplaceState
似乎只适用于最后一个斜杠之后的 URL 部分。
一个简单的例子:如果我在http://www.example.com/example/
并且做pushState('Article-Title/1')
,则 url 变为http://www.example.com/example/Article-Title/1
. 现在我可以用 更改页码pushState('2')
,但我无法更改Article-Title
部分,这就是我所追求的。window.location.href
,在 Ben Lupton 的示例中使用,可以更改 URL,但它也会导致“硬”重定向。
我想这个约束是为了防止 XSS;但是,这让我很困扰。有没有合理的解决方法?