3

Wordpress可能有 url,例如sitename.com/post-title虽然不存在具有 name 的目录post-name

我猜想index.php(或可能是404 page)必须处理此类请求。

任何人都请解释这背后的确切技巧......

4

3 回答 3

4

在此页面中阅读有关 Mod Rewrite 的基础知识。它是一个 Apache 模块,允许您解析请求内容并将其重定向到“真实”页面,而无需更改浏览器地址。

假设你有这个:

 RewriteRule ^post/([0-9]+)?/?([0-9]+)?/?$ /index.php?p=$1&page=$2 [QSA]

使用这样的重写规则,请求地址如下所示:

www.mysite.com/post/10/2

将被重定向到:

www.mysite.com/index.php?p=10&page=2

从美学的角度来看,这是更好的搜索引擎优化

具体来说,在 WordPress 中,每个请求都被重定向到 index.php 页面,该页面包含请求的内部“解析器”,该请求根据解析结果加载内容。

नमस्ते!

于 2013-01-21T13:47:10.597 回答
2

我猜 index.php 一定是在处理这类请求。

确切地。

他们通过 .htaccess 规则将所有请求重定向到 index.php。如果您正在考虑在自己的应用程序中采用他们的解决方案 - 不要。今天,这种技术有更好的实现。是一个例子。

于 2013-01-21T13:48:45.237 回答
1

这个怎么运作:

mod_rewrite 接受与某个参数匹配的请求,并可以将它们重定向到其他位置。在 wordpress 的情况下,所有响应 (*) 都被接受并传输到 index.php 页面,该页面有一个标准路由器,它分割 url 即 $_SERVER["REQUEST_URI"] 并将其与存储的 url 配置匹配并加载正确的组件(类别、帖子、页面等)

于 2013-01-21T13:51:11.773 回答