1

我想自定义我的 wordpress 永久链接的结构,稍微超出默认提供的结构。我想在 /%postname%/ 之前添加 #/,以便代替当前的永久链接:

http://www.mybusinesssite.com/about/thecompany

我明白了:

http://www.mybusinesssite.com/#/about/thecompany

编辑:这是不起作用的:页面的实际永久链接是http://www. mybusinesssite.com/about/thecompany- 但是当我将该页面加载到主索引页面时,url 显示更改为http://www. mybusinesssite.com/#/about/thecompany. 该页面显示得很好,但无法正确添加书签,因为http://www. mybusinesssite.com/#/about/thecompany通过书签访问会将用户引导至页面的初始状态,而不是从 /about/thecompany 加载内容的页面。我想要做的是将实际页面永久链接设置为#/about/thecompany. 然后,我将使用 JavaScript 将该 url 分割成段,删除初始#/段,并在 JavaScript 哈希之后添加其他所有内容。结果,我将#/about/thecompany在他的 url 中,这将是该页面的实际 url。

如何才能做到这一点?

4

2 回答 2

5

正如这里正确解释的那样,您无法通过 PHP 读取任何经过哈希的内容,因为它根本不会传输到服务器。

你可以在你的第一个页面上有一个脚本,通过 ajax 获取子页面,但这对于搜索引擎和一般可用性来说是一团糟。

jQuery(document).ready(function($) {
    if(window.location.hash) {
        // Fragment exists, redirect to url without #
        window.location = window.location.replace("#","");
    }
});
于 2013-06-02T15:22:27.440 回答
3

如上面评论中所述:之后的 URL 部分# 不会传递给服务器 - 例如,只有用户浏览器知道它。如果用户书签:带有哈希字符的链接 - 访问该链接时,唯一会离开用户设备的部分是http://www.example.com/ - 因此,即使您根据需要完成自定义 wordpress URL,它也行不通(它可以工作对于任何其他字符,但对于#)

要解决您的问题,您需要在门户根目录上使用 javascript 解决方案 - 它甚至可以变成一个简单的解决方案。(读取原始 URL,其中 javascript 在客户端,包括过去的字符#,并从服务器加载它,删除#

于 2013-06-02T15:27:13.747 回答