我想自定义我的wordpress永久链接的结构略微超出默认提供的结构。我想在/%postname%/之前添加#/,以便代替当前的永久链接:
http://www.mybusinesssite.com/about/thecompany
我明白了:
http://www.mybusinesssite.com/#/about/thecompany
编辑:以下是不起作用的内容:页面的实际永久链接为http://www. mybusinesssite.com/about/thecompany
- 但是当我将该页面加载到主索引页面时,网址显示更改为{{1 }}。该页面显示正常,但无法正确添加书签,因为通过书签访问http://www. mybusinesssite.com/#/about/thecompany
会导致用户进入页面的初始状态,而不是从/ about / thecompany加载内容的页面。我想要做的是将实际页面永久链接设为http://www. mybusinesssite.com/#/about/thecompany
。然后,我将使用JavaScript将该网址拆分为细分,删除初始#/about/thecompany
细分,然后在JavaScript哈希之后添加其他所有内容。因此,我将在其网址中显示#/
,这将是该网页的实际网址。
如何做到这一点?
答案 0 :(得分:5)
正确解释here,您无法通过PHP 读取任何超出散列的内容,因为它根本不会传输到服务器。
你的第一页上可能有一个脚本通过ajax获取子页面,但这对搜索引擎和一般可用性来说都是一团糟。
jQuery(document).ready(function($) {
if(window.location.hash) {
// Fragment exists, redirect to url without #
window.location = window.location.replace("#","");
}
});
答案 1 :(得分:3)
如上面的评论中所述:#
之后的URL部分未传递给服务器 - 就像在用户浏览器中只知道它一样。如果用户书签:带有散列字符的链接 - 当进行访问时,唯一会离开用户设备的部分是http://www.example.com/
- 所以,即使你按照自己的意愿定制你的wordpress URL,它也不会工作(它可以适用于任何其他角色,但适用于#
)
要解决您的问题,您需要在门户网站根目录上使用javascript解决方案 - 它甚至可以变成一个简单的解决方案。 (阅读原始网址,客户端的javascript,包括#
之后的字符,并从服务器加载,删除#
)