Wordpress以什么方式重写页面URL?

时间:2010-04-27 16:43:51

标签: php mysql wordpress

最近我对帖子的Wordpress结构感兴趣。

他们使用名为( wp_posts )的表格,在此表格中他们保存了3个相关字段,例如:

post_title
post_name
guid 

很明显,他们在 post_title 字段中保存每个故事的标题, 和slu strong post_name , 提交公会中的帖子的完整网址。

但是到底哪里,他们会在浏览器中重写这些网址:

  

http://localhost/wordpress/about/

这没有htaccess规则!

我检查了rewrite.php并且不明白一寸?!

我需要创建类似的页面,我应该采取什么步骤!?

2 个答案:

答案 0 :(得分:5)

.htaccess文件有一个重写指令,可以将所有请求发送到index.php。重写指令告诉Web服务器将原始请求传递到其他位置而不重定向。因此,index.php接收所有原始参数,包括请求路径(主机名后面的URL部分,例如“/ about /").

当index.php收到请求时,它就像一个前端控制器,找出如何根据URL做出响应。

我从来没有看过WordPress的内部工作原因,所以我不能确切地说它们是如何实现的,但index.php的一般想法是:

  1. 查看客户端使用的请求路径(例如“/ about /”)
  2. 从请求路径中提取slug(“about”)
  3. 查找哪个帖子有“约”的帖子
  4. 返回相应的帖子

答案 1 :(得分:0)

如果您查看WP_Rewrite课程,将会解释很多问题。

基本上,正如大多数人所说的那样,.htaccess只是将所有未解析为服务器上的实际文件或文件夹的URL重写为index.php

WordPress将URL映射到重写规则列表,这是一组键和值。键是正则表达式,值将back references映射到参数字符串。

例如,一个重写规则是;

category/(.+?)/page/?([0-9]{1,})/?$' => 'index.php?category_name=$matches[1]&paged=$matches[2]'

然后,课程WPWP_Query一起获取参数并处理请求。