2

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

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

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

4

1 回答 1

3

一旦它被重定向到 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'].

于 2009-08-11T17:32:43.100 回答