我的页面在php上运行,没有js用户。对于使用javascript的用户,我将所有内容动态从索引加载到 hashchangevent 。所以链接都看起来像www.page.com/#page.php,前面有#。如果用户以这种方式键入它,那么每个东西都像魅力一样,并且内容正在通过index.php加载
但是如果用户输入www.page.com/page.php,页面当然会在php页面上结束,动态页面当然不再有效,除非用户点击索引页面继续从那导航。所以这不是一个很酷的方式。
我的问题:
如何从以下位置重定向用户:
www.page.com/page.php
到
www.page.com/#page.php
当他们在浏览器中输入www.page.com/page.php
时当然只有javascript。通常使用php,页面应该没有javascript工作。
谢谢。
答案 0 :(得分:0)
加载页面时,通过解构和重新组合URI将window.location
更改为所需的URL。不幸的是,您必须在要重定向的每个页面(即page.php
)上包含此内容。
$(document).ready(function () {
// Insert the pathname after the hash, but skip the leading '`'
window.location = "/#" + document.location.pathname.slice(1);
});
它稍微不那么干净,但您也可以完全从window.location
删除.ready()
位。这会影响性能的小幅提升。
如果您希望散列重定向仅影响当前路径的最后一个元素,请改用以下代码。
window.location = "./#" + document.location.pathname.split('/').pop();