You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Classic ASP父路径的IIS虚拟目录出现403禁止访问错误

解决IIS虚拟目录403.14禁止访问错误的方案

哥们,你碰到的403.14错误核心原因大概率是IIS的默认文档模块不支持父路径相对引用——你在虚拟目录web.config里写的<add value="../default.asp" />根本不会生效,IIS找不到这个路径的默认文档,自然就返回403.14了(毕竟没找到默认文档,又没开目录浏览的话就会锁死访问)。结合你描述的场景,给你几个针对性的解决步骤:

1. 放弃用默认文档的父路径,改用正确的跳转/映射方式

你要实现的是「虚拟目录重定向到网站根目录运行ASP脚本」,别在defaultDocument里折腾相对路径,换下面两种更靠谱的方式:

方式一:直接用IIS的HTTP重定向

  • 打开IIS管理器,找到你的虚拟目录
  • 双击「HTTP重定向」功能
  • 勾选「将请求重定向到此目标」,填入/default.asp
  • 勾选「将所有请求重定向到确切目标(而不是相对于目标)」,保存配置
    这样访问虚拟目录URL时,会直接跳转到根目录的default.asp

方式二:用URL重写(需先安装URL重写组件)

如果需要更灵活的规则,把虚拟目录的web.config替换成以下重写配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
  <rewrite>
    <rules>
      <rule name="Virtual Dir to Root ASP" stopProcessing="true">
        <match url=".*" />
        <action type="Redirect" url="/default.asp" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>
</configuration>

方式三:直接映射物理路径(最直接)

如果虚拟目录只是要作为根目录的入口,直接修改虚拟目录的物理路径为网站根目录的路径(比如C:\inetpub\wwwroot),这样访问虚拟目录就等同于访问根目录,完全不需要相对路径配置。

2. 权限与配置的补充排查

虽然你已经做了不少权限设置,但还是要确认几个容易忽略的点:

  • 检查应用程序池身份对网站根目录的权限:比如你设的NETWORK SERVICE,要确保它对根目录有「读取」「执行」权限,别只给wwwroot的权限(如果根目录就是wwwroot当我没说)
  • 确认ASP功能已正确安装:去服务器管理器的「Web服务器(IIS)」→「应用程序开发」里,确保「ASP」已勾选安装;再检查虚拟目录的「处理程序映射」里,有Classic ASP的映射(*.asp指向asp.dll)
  • 检查请求筛选:在站点的「请求筛选」→「文件扩展名」里,确认.asp在允许列表中,没有被禁止

3. 用失败请求跟踪定位细节

如果还是不行,开启IIS的失败请求跟踪(FRT)

  • 在站点或虚拟目录的功能视图里,双击「失败请求跟踪规则」
  • 添加规则,捕获403状态码的请求
  • 重新访问触发错误的URL,然后查看生成的跟踪日志,里面会详细显示是哪个模块(比如defaultDocument、Authorization)导致的错误,能精准定位问题

内容的提问来源于stack exchange,提问作者Michael R.

火山引擎 最新活动