我很高兴能在Wordpress源代码中占据一席之地;我想知道他们如何管理自定义网址功能,但我真的无法得到它。
wordpress .htaccess文件中的重写规则只是将所有请求重定向到index.php。
在那之后,这对我来说是一个谜:他们如何使example.com/this/title/is/cool/
匹配index.php?p=233 ?
答案 0 :(得分:3)
一旦将其重定向到index.php,该文件可以查看$_SERVER['REQUEST_URI']
以确定this/title/is/cool
部分中的内容,然后从数据库中查找要提供的页面,因为REQUEST_URI列出完整的URI字符串,即使重定向到的实际页面网址只是它的第一部分。
例如,
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']
。