【问题标题】:Wordpress "search engine friendly" urls ( permalinks) implementationWordpress“搜索引擎友好”网址(永久链接)实施
【发布时间】:2010-11-18 17:00:39
【问题描述】:

我有幸在 Wordpress 源代码方面达到顶峰;我想知道他们是如何管理自定义 url 功能的,但我无法真正理解。

wordpress .htaccess 文件中的重写规则只是将所有请求重定向到 index.php。

在那之后,这对我来说是个谜:他们如何使example.com/this/title/is/cool/ 匹配index.php?p=233 ?

【问题讨论】:

    标签: wordpress .htaccess mod-rewrite permalinks


    【解决方案1】:

    一旦它被重定向到 index.php,该文件可以查看 $_SERVER['REQUEST_URI'] 以确定 this/title/is/cool 部分中的内容,然后从数据库中查找要提供的页面,因为 REQUEST_URI 列出了完整的 URI字符串,即使被重定向到的实际页面 url 只是它的第一部分。

    例如,

    http://www.example.com/foo/bar/
    

    被重写为

    http://www.example.com/index.php/foo/bar/
    

    这实际上会导致http://www.example.com/index.php 被加载,但$_SERVER['REQUEST_URI'] 将包含完整的/index.php/foo/bar/

    一些应用程序使用不同的方法,他们使用.htaccess 来获取尾随的“目录”并将它们放入查询字符串中,这样重写就变成了这样:

    http://www.example.com/index.php?path=/foo/bar/
    

    在这种情况下,提供的路径在_GET['path'] 中可用。

    【讨论】:

    • 谢谢!我认为它可能是这样的,但否认了,因为我认为没有人可以确定服务器变量在任何地方都可用。 $_SERVER['REQUEST_URI'] 实际上是一个可靠的变量,它存在于所有设置中?
    • $_SERVER['REQUEST_URI'] 不包含完整的 URI,而仅包含 URI 路径和查询。
    • @pixeline: $_SERVER['REQUEST_URI'] 由 Web 服务器提供给 PHP;大多数常见的 Web 服务器(包括 Apache 和 IIS)都支持它。
    猜你喜欢
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 2014-03-10
    • 1970-01-01
    相关资源
    最近更新 更多