---
title: "IIS下不用Rewrite实现wordpress伪静态"
url: "https://yjyj.net/learn/wordpress-learn/1102.html"
author: "小 虾 (生猛大蝦编辑部)"
published_at: "2009-03-01T01:15:41+08:00"
updated_at: "2013-01-04T17:35:06+08:00"
categories: "WordPress 学习"
tags: "Windows排错指南, WordPress优化, WordPress开发"
summary: "本文讲解在 IIS 环境下，如何不依赖 Rewrite 规则为 WordPress 实现伪静态。核心思路是借助 404 错误页接管请求、重写 REQUEST_URI 与 PATH_INFO，再转入 index.php，适合老站点快速补救与实战排错。"
source: "生猛大蝦 (https://yjyj.net)"
---

# IIS下不用Rewrite实现wordpress伪静态

> 来源：[生猛大蝦 (yjyj.net)](https://yjyj.net/learn/wordpress-learn/1102.html) · 作者：小 虾 · 发布时间：2009-03-01

## 30 秒核心看点 (TL;DR)

- 不用 Rewrite，也能靠 404 错误页把 WordPress 请求导回入口文件。
- 关键是改写 QUERY_STRING、REQUEST_URI 和 PATH_INFO，让程序识别伪静态路径。
- 适合 IIS 老环境快速落地，但要注意 404 处理逻辑与路径解析是否一致。

原理是利用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 的识别没有冲突。若路径截取规则不匹配，可能出现跳转异常或页面无法解析，建议先在测试环境验证再上线。

---
更多 Linux 运维、WordPress 性能优化、前端工程化、Shopify 独立站与极客折腾指南：[生猛大蝦全站文章归档 (https://yjyj.net/archive)](https://yjyj.net/archive)
