尾部斜杠未正确重定向到html页面

时间:2016-06-20 06:07:38

标签: asp.net-mvc

我在web.config中添加了以下代码

<system.webserver>        
<httperrors errormode="Custom" existingresponse="Replace">
<remove statuscode="404"/>
<remove statuscode="403"/>
<error statuscode="403" responsemode="Redirect" path="Error/ErrorMessage.html"/>
<error statuscode="404" responsemode="Redirect" path="Error/ErrorMessage.html"/>
</httperrors>

<defaultdocument enabled="false"/>

</system.webserver>

现在当我输入网址时说&#34; http://localhost:10335/test&#34;它正确地重定向到ErrorMessage.html页面

但是当我在测试后输入尾随斜线时说&#34; test /&#34;它正在重定向到url &#34; http://localhost:10335/test/Error/Error/Error/Error/Error/Error/Error/Error/Error/Error/Error/Error/Error/Error/Error/Error/Error/Error/Error/Error/ErrorMessage.html&#34;说&#34;页面没有正确重定向&#34;

请帮帮我。感谢

2 个答案:

答案 0 :(得分:0)

尝试在错误之前加上斜杠,即:

<error statuscode="403" responsemode="Redirect" path="/Error/ErrorMessage.html"/>
<error statuscode="404" responsemode="Redirect" path="/Error/ErrorMessage.html"/>

答案 1 :(得分:0)

您需要将路径前面的/放在error.html文件中,因为您必须获取HTTP错误404.20 - Not Found,这会创建不需要的URL 没有默认文档。重现问题后,以下设置应该有效:

 <httpErrors errorMode="Custom" existingResponse="Replace">
      <remove statusCode="404"/>
      <remove statusCode="403"/>

      <error statusCode="403" responseMode="Redirect" path="/Error/Error.html"/>
      <error statusCode="404" responseMode="Redirect" path="/Error/Error.html"/>

    </httpErrors>

      <defaultDocument enabled="false"/>