IIS重定向不起作用而没有尾部斜杠

时间:2016-08-01 16:13:42

标签: asp.net iis web-config http-redirect

我有一个网络应用程序,我正在退役,我正在尝试将所有请求重定向到旧应用程序到特定页面(显示替换的链接和建议用户更新其书签的消息)。 / p>

我使用此问题的答案在web.config中设置了HTTP重定向:ASP.NET httpRedirect : redirect all pages except one除了当用户输入网站根文件夹的URL而忽略尾部斜杠时,它才有效它会转到树上的下一个目录,例如:

原始网站root:[domain]/foo/bar/

[domain]/foo/bar/specificpage.aspx重定向到[domain]/foo/bar/Default.aspx(确定)

[domain]/foo/bar/重定向到[domain]/foo/bar/Default.aspx(确定)

[domain]/foo/bar重定向到[domain]/foo/Default.aspx(不行)

这是相关的web.config:

<system.webServer>
    <httpRedirect enabled="true" destination="~/Default.aspx" httpResponseStatus="Permanent">
      <add wildcard="/" destination="Default.aspx" />
    </httpRedirect>
  </system.webServer>
  <location path="Default.aspx">
    <system.webServer>
      <httpRedirect enabled="false" />
    </system.webServer>
  </location>

当用户转到[domain]/foo/bar时,如何让它工作?

1 个答案:

答案 0 :(得分:2)

为了记录,我通过将重定向URL设置为文件的绝对路径来修复此问题,包括站点根所在的虚拟目录:

<system.webServer>
    <httpRedirect enabled="true" destination="/foo/bar/Default.aspx" httpResponseStatus="Permanent" exactDestination="true">
      <add wildcard="/" destination="Default.aspx" />
    </httpRedirect>
  </system.webServer>
  <location path="Default.aspx">
    <system.webServer>
      <httpRedirect enabled="false" />
    </system.webServer>
  </location>