在IIS 10中为重命名为.doc的ASP文件启用服务器端包含(SSI)
IIS 10下让含SSI的.doc文件触发ASP解析的解决办法
核心思路
要实现需求,得同时满足两个条件:一是让IIS用ASP引擎(asp.dll)解析.doc文件里的SSI指令,二是让输出内容被客户端识别为Word文档,避免直接显示源码。
步骤一:配置.doc的脚本映射
- 打开IIS管理器,定位到目标站点,进入处理程序映射面板
- 点击右侧的添加脚本映射,填写以下信息:
- 请求路径:
*.doc - 可执行文件:选择
C:\Windows\System32\inetsrv\asp.dll(IIS默认安装路径,路径不同自行调整) - 名称:自定义,比如
ASP_Doc_Handler - 点击确定,确认创建该映射
- 请求路径:
步骤二:设置响应头,确保客户端识别为Word文档
- 在处理程序映射列表中找到刚创建的
ASP_Doc_Handler,右键选择编辑 - 点击请求限制按钮,切换到响应头标签页
- 点击添加,输入响应头名称
Content-Type,值填application/msword,保存设置
关键注意事项
- 应用程序池必须设为经典模式:经典ASP依赖传统IIS管道模式,集成模式下可能无法正常解析SSI
- 启用ASP的服务器端包含:在站点的ASP功能设置里,找到“启用服务器端包含”选项,设为
True - 检查权限:确保
asp.dll对站点目录下的.doc和.asp包含文件有读取权限,处理程序映射的编辑权限要勾选脚本
备选方案(若上述方法有兼容性问题)
如果直接映射asp.dll遇到问题,可以用URL重写配合ASP文件间接处理:
- 确保站点已安装URL重写模块(IIS管理器的模块列表可确认)
- 新建重写规则:将所有
*.doc的请求内部重写为*.asp(前提是可将原.doc文件重命名为.asp,同时保留对外的.doc访问路径) - 同样在ASP处理的响应头里添加
Content-Type: application/msword,让客户端识别为Word文档
内容的提问来源于stack exchange,提问作者Doofus
相关产品推荐
相关产品推荐

