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

Php 获取散列URL并将其发送到新URL,php,javascript,hash,tags,url,Php,Javascript,Hash,Tags,Url,例如,我希望将我的注册、关于和联系人页面解析为不同的内容,但通过哈希标记: 三个链接,分别指向注册、联系人和关于页面- www.site.com/index.php#关于 www.site.com/index.php#注册 www.site.com/index.php#联系 有没有一种方法可以使用Javascript或PHP将这些页面解析为单独的内容?散列不会发送到服务器,因此您只能使用Javascript执行此操作 检查location.hash的值您可以使用PHP的全局$\u请求变量获取

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

三个链接,分别指向注册、联系人和关于页面-

  • www.site.com/index.php#关于
  • www.site.com/index.php#注册
  • www.site.com/index.php#联系

有没有一种方法可以使用Javascript或PHP将这些页面解析为单独的内容?

散列不会发送到服务器,因此您只能使用Javascript执行此操作


检查
location.hash的值

您可以使用PHP的全局$\u请求变量获取请求的URL并解析出hashtag…

我想您可能有一个很好的理由,但是我可以问一下,您为什么要这样做?它打破了人们普遍理解的URL中散列的工作方式标准,只是在与其他客户端的互操作性上自找麻烦。

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

但是,它确实需要一些冗余,因为您需要两次提供相同的内容,一次通过AJAX包含,一次通过PHP提供适当的布局和所有内容


如果你只是出于美观的原因想要散列URL,但又不想依赖JS,那你就倒霉了。URL的语义不利于您:片段ID不应该真正影响URL所引用的内容,而只是该内容中的片段。AJAX URL正在改变这些语义,但如果不必这样做,就没有理由这样做。

错了。哈希标记通常不会发送到服务器,而是由用户代理处理。您可能想到的是cgi参数,而不是散列(或片段标识符)。在给公共社区中的人打错电话之前,请自己检查一下。我很抱歉让你失望,但你错了:注意“url”上写的内容。您正在考虑GET参数:--您正在谈论的事实(在本例中,它只是委托给$\u GET)应该是一个明显的线索。这通常在Gmail等AJAX-y网站中进行,以允许用户保留浏览器历史记录和书签功能,尽管实际页面URL从未改变。有趣的技术,我以前没听说过。对于SEO来说,从网站架构的角度来看,有时候减少某些页面带来的链接“足迹”是有益的。对于这些类型的页面,它们在搜索结果中并没有真正的帮助-它们是用户的支持页面,如果整合,可以帮助强调其他内容/URL。。。有意义吗?对我来说听起来像SEO巫毒:)我认为,更好的做法是,让那些人解析真实的页面,让他们链接回主页,让谷歌将你识别为一个完整的带有辅助页面的网站,而不是冒着让他们惩罚你违反网络标准的风险。只有当你误导用户时才会受到惩罚。在这种情况下,不会有误导——用户完全被带到他们期望的地方,但从技术上来说,这是一个潜在的优势。这看起来不错(也要感谢Slaks)。我来试一试,看看能得到什么。在任何javascripting中,可能都需要进行相当多的测试——非常生疏。