获取散列URL并将其发送到新URL

时间:2009-10-29 13:54:45

标签: php javascript hash tags url

例如,我想让我的注册,关于和联系页面解析为不同的内容,但通过哈希标记:

三个链接各一个注册,联系和关于页面 -

  • www.site.com/index.php#about
  • www.site.com/index.php#registration
  • www.site.com/index.php#contact

有没有办法使用Javascript或PHP将这些页面解析为分离的内容?

4 个答案:

答案 0 :(得分:5)

哈希不会发送到服务器,因此您只能在Javascript中执行。

检查location.hash

的值

答案 1 :(得分:2)

没有服务器端方法可以做到这一点。您可以使用AJAX,但这会破坏非JavaScript用户的网站。最好的方法可能是拥有服务器端内容URL(index.php?page=<page_id>)并使用JavaScript在本地重写(到#<page_id>)并使用AJAX 然后处理内容加载。这样你就可以获得支持JS的设备的哈希URL,而其他人仍然可以使用该网站。

然而,它确实需要一些冗余,因为你需要提供两次相同的内容,一次是通过AJAX包含,一次是通过适当的布局和一切通过PHP。

如果您只是出于审美原因而想要哈希URL,但又不想依赖JS,那么您就不走运了。 URL的语义对您不利:片段ID不应该真正影响URL所引用的内容,而只影响该内容中的片段。 AJAX URL正在改变这些语义,但如果你不需要,那就没有充分的理由去做。

答案 2 :(得分:0)

我想你可能有充分的理由,但我可以问,你为什么要这样做?它打破了广泛理解的URL中的哈希值应该如何工作的标准,并且它只是在与其他客户的互操作性方面遇到麻烦。

答案 3 :(得分:-2)

您可以使用PHP的Global $ _REQUEST变量来获取请求的URL并解析标签...