如何使用Javascript或jQuery从“page.php”重定向到“#page.php”?

时间:2011-09-18 22:31:34

标签: javascript jquery redirect

我的页面在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工作。

谢谢。

1 个答案:

答案 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();