2009-08-11 40 views
2

我很高兴在Wordpress源代码峰值;我想知道他们如何管理自定义网址功能,但我无法真正了解它。WordPress的“搜索引擎友好”的网址(固定链接)的执行

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

之后,这是一个神秘的对我说:他们是如何让example.com/this/title/is/cool/比赛index.php?p=233 ?

回答

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']

+0

谢谢!我想它可能是这样的东西,但否认它,因为我认为没有人可以在任何地方都可以使用某些服务器变量。 $ _SERVER ['REQUEST_URI']实际上是一个可靠的变量,它存在于所有设置中? – pixeline 2009-08-11 19:22:27

+0

'$ _SERVER ['REQUEST_URI']'不包含完整的URI,只包含URI路径和查询。 – Gumbo 2009-08-11 20:09:42

+0

非常感谢Gumbo。编辑。 – Amber 2009-08-11 22:20:43