原理是利用404错误页面重写URL
程序代码
|
<?php |
这篇文章虽然短,但思路很典型:在没有 Rewrite 模块或不方便改服务器规则时,先借 404 错误页“接管请求”,再把原始地址喂给 WordPress。实操时最容易踩坑的是 IIS 的错误页配置、PHP 是否能正常执行,以及 QUERY_STRING 的格式是否符合脚本截取逻辑。建议先用测试文章页验证,再检查固定链接是否全部可用。
IIS 下为什么能用 404 实现伪静态?
因为请求找不到真实文件时,会先进入 404 错误页处理流程。把这个入口页改成 PHP 脚本后,就能读取原始请求信息,再手动改写 REQUEST_URI 和 PATH_INFO,最后交给 WordPress 继续解析。
这段代码具体做了什么?
它先取出 QUERY_STRING,再从中截取原始路径,写回 REQUEST_URI 和 PATH_INFO,最后 include('index.php')。这样 WordPress 会把访问当成正常的伪静态地址来处理,而不是普通查询参数。
使用这种方法要注意什么?
要确认 IIS 的 404 页面确实会执行 PHP,并且服务器对 PATH_INFO 的识别没有冲突。若路径截取规则不匹配,可能出现跳转异常或页面无法解析,建议先在测试环境验证再上线。







发表回复