讲清 web.config 规则的结构与常见框架规则写法,避免规则冲突导致 404。下面按“先判断、再动手、最后验证”的顺序展开,每一步都给出可核对的检查点。
涉及 IIS伪静态、URL重写、web.config 的关键动作都写成了具体命令或配置项,可以照着走,也可以当检查表用。
前置条件
先装 URL Rewrite 模块,否则 web.config 里的规则整段被忽略。
规则结构
match 负责匹配,action 负责重写或重定向,conditions 处理 HTTPS 与文件存在性。
框架规则
WordPress 用 index.php 兜底,ThinkPHP 用 index.php?s= 模式,两条规则不要同时存在。
避免死循环
加条件排除已存在的文件与目录,否则图片也会被交给 PHP 处理。
调试
用失败请求跟踪看规则是否命中,比反复猜快得多。
速查表
| 环节 | 关键动作 |
|---|---|
| 前置条件 | 先装 URL Rewrite 模块,否则 web.config 里的规则整段被忽略 |
| 规则结构 | match 负责匹配,action 负责重写或重定向,conditions 处理 HTTPS 与文件存在性 |
| 框架规则 | WordPress 用 index.php 兜底,ThinkPHP 用 index.php?s= 模式,两条规则不要同时存在 |
| 避免死循环 | 加条件排除已存在的文件与目录,否则图片也会被交给 PHP 处理 |
常见问题
Q:按文中写法改完,怎么确认真的生效?
不要只看配置文件,用对应的验证命令或从外部视角复测一次;改完先小流量观察一段,再全量推进,出问题能马上回退。
Q:按文中的步骤做完,还需要注意什么?
把处理过程和最终生效的参数记下来。同类问题再出现时直接对照记录,比重查一遍快得多。
Q:业务规模小,也要按这套标准来吗?
不需要一次到位。先把影响最大的两项做到位,剩余的随着业务增长逐步补齐,比一开始就追求完美更容易落地。
小结
回到这篇的 5 个环节:前置条件、规则结构、框架规则、避免死循环、调试。把这几个动作写进检查表,下次遇到同类问题按顺序过一遍,比凭经验跳步骤稳。
相关阅读:组策略基础:批量管控与安全基线、Windows Server备份与系统还原、服务器时间同步与NTP配置。
延伸阅读:IIS部署PHP站点的完整流程、WordPress固定链接与301规则、Windows更新策略:别让重启打断业务。