【问题标题】:Why I'm getting "HTTP Error 403.14 - Forbidden" error after redirecting URL?为什么我在重定向 URL 后收到“HTTP Error 403.14 - Forbidden”错误?
【发布时间】:2012-08-06 17:53:39
【问题描述】:

这是我的解决方案结构。
当用户点击这个 http://localhost/RouteUrl/ URL 时,我想将他们重定向到 http://localhost/RouteUrl/UI/MainForm.aspx

在 system.web 部分的 web.config 文件中,我写过:

<urlMappings enabled="true">
  <add url="~/RouteUrl" mappedUrl="~/UI/MainForm.aspx" />
</urlMappings>

当我浏览 http://localhost/RouteUrl/ 时,它会显示 HTTP Error 403.14 - Forbidden。 Web 服务器配置为不列出此目录的内容 当我直接浏览 http://localhost/RouteUrl/UI/MainForm.aspx 时,它只是显示页面,不显示任何错误。

我不想启用目录浏览。我错过了什么?我应该如何正确重定向 URL?

【问题讨论】:

  • 有没有可能 .NET 没有解析您的请求,而 IIS 正在寻找 ~/RouteUrl 目录中的默认文档?您是否尝试过将其更改为 ~/RouteUrl.aspx(只是为了测试理论)并尝试这种方式?
  • @Kyle B. 我在 UI 文件夹中添加了 AnotherMain.aspx。并将 web.config 更改为 &lt;add url="~/RouteUrl/UI/AnotherMain.aspx" mappedUrl="~/RouteUrl/UI/MainForm.aspx" /&gt; 。现在,当我浏览 localhost/RouteUrl/UI/AnotherMain.aspx 时,它显示 HTTP 404 错误。
  • 您能否尝试将 添加到 元素以确保 .NET 正在处理/拦截请求?
  • 是的,我试过了,但还是没有希望。

标签: asp.net iis-7 url-routing url-redirection


【解决方案1】:

我终于找到了问题所在。 ~ 本身指向根目录,在&lt;add /&gt; 标签中我写了url="~/RouteUrl"

所以更正后的&lt;add /&gt; 标记将是:
&lt;add url="~/" mappedUrl="~/UI/MainForm.aspx" /&gt;

【讨论】:

    【解决方案2】:

    我相信您的问题在于尾随 /。您的路线是到 ~/RouteUrl,并且您正在输入 ~/RouteUrl/,它将充当目录的根目录,并且在关闭目录浏览的情况下,您会收到 403 错误。

    【讨论】:

    • 我不清楚你想说什么。如果您不介意,可以帮我重新编写&lt;add /&gt; 标签吗?
    【解决方案3】:

    添加&lt;modules runAllManagedModulesForAllRequests="true" /&gt; 到 web.config 中的 &lt;system.webServer&gt; 部分对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-20
      • 1970-01-01
      • 1970-01-01
      • 2014-03-15
      • 2014-08-12
      • 1970-01-01
      相关资源
      最近更新 更多