IIS下不用Rewrite实现wordpress伪静态

本文讲解在 IIS 环境下,如何不依赖 Rewrite 规则为 WordPress 实现伪静态。核心思路是借助…


生猛大蝦 - cool futuristic abstract background with shining neon light

原理是利用404错误页面重写URL

程序代码

<?php
$qs = $_SERVER[‘QUERY_STRING’];
$_SERVER[‘REQUEST_URI’] = substr($qs, strpos($qs, ‘:80’)+3);
$_SERVER[‘PATH_INFO’] = $_SERVER[‘REQUEST_URI’];
include(‘index.php’);
?>

📌 生猛大蝦编辑部 · 背景与实操延伸

这篇文章虽然短,但思路很典型:在没有 Rewrite 模块或不方便改服务器规则时,先借 404 错误页“接管请求”,再把原始地址喂给 WordPress。实操时最容易踩坑的是 IIS 的错误页配置、PHP 是否能正常执行,以及 QUERY_STRING 的格式是否符合脚本截取逻辑。建议先用测试文章页验证,再检查固定链接是否全部可用。

❓ 延伸问答与排错指南(FAQ)
IIS 下为什么能用 404 实现伪静态?

因为请求找不到真实文件时,会先进入 404 错误页处理流程。把这个入口页改成 PHP 脚本后,就能读取原始请求信息,再手动改写 REQUEST_URI 和 PATH_INFO,最后交给 WordPress 继续解析。

这段代码具体做了什么?

它先取出 QUERY_STRING,再从中截取原始路径,写回 REQUEST_URI 和 PATH_INFO,最后 include('index.php')。这样 WordPress 会把访问当成正常的伪静态地址来处理,而不是普通查询参数。

使用这种方法要注意什么?

要确认 IIS 的 404 页面确实会执行 PHP,并且服务器对 PATH_INFO 的识别没有冲突。若路径截取规则不匹配,可能出现跳转异常或页面无法解析,建议先在测试环境验证再上线。


2 条对“IIS下不用Rewrite实现wordpress伪静态”的回复

  1. 深圳瑜伽 的头像
    深圳瑜伽

    你好哇!你的博客很漂亮哇!!
    来踩踩喇!
    我是深圳的哟! :-))

    1. 小 虾 的头像
      小 虾

      也祝你愉快!交换一下blog链接吧.

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理。