IIS 10 不支持 httpd.ini,必须使用 web.config 配合 URL Rewrite 模块实现 ThinkPHP 8.0 伪静态;需安装模块、配置 web.config 规则、开启路由并确保权限与 PHP 运行模式正确。

Windows Server 2019 的 IIS 10 不支持 httpd.ini 文件——这个文件是旧版 ISAPI-Rewrite(如 Helicon Ape)或 IIS6 时代第三方 Rewrite 组件 使用的格式,IIS 7 及以后(包括 IIS 10)原生使用的是 URL Rewrite Module(微软官方模块),规则写在 web.config 中,而非 httpd.ini。
IIS 10 正确做法:用 web.config + URL Rewrite Module
ThinkPHP 8.0 在 IIS 10 下实现伪静态,必须满足两个前提:
- IIS 已安装并启用 URL Rewrite 模块(需单独下载安装,IIS 默认不带);
- 网站根目录存在标准的
web.config文件,内含符合 IIS 规范的重写规则。
ThinkPHP 8.0 推荐的 web.config 规则(直接可用)
将以下内容保存为 web.config,放在 ThinkPHP 项目的 Web 根目录(如 D:\inetpub\wwwroot\tp8)下:
关键点说明
- 不依赖 httpd.ini:IIS 10 完全无视该文件,即使存在也不会读取;
- 必须启用 URL Rewrite 模块:从 IIS 官网下载安装(x64 版本),安装后需重启 IIS 管理器;
-
ThinkPHP 配置同步:确保
config/app.php中'url_route_on' => true且'url_html_suffix' => ''(或按需设置); - PHP 运行模式匹配:IIS 下推荐用 FastCGI + PHP NTS 版本(非 TS),与 IIS 多工作进程模型更兼容;
-
权限注意:确保 IIS_IUSRS 对
web.config和public/目录有读取权限。
如果坚持要用 httpd.ini(不推荐,仅作说明)
只有在极少数场景下——比如你额外安装了过时的 Helicon Ape for IIS 并启用它,才可能识别 httpd.ini。其对应 ThinkPHP 规则形如:
RewriteRule (.*)$ /index\.php\?s=$1 [I]
但该方案已停止维护、存在安全风险、不兼容 PHP 8.0+ 新特性,强烈建议放弃。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











