一般404设置用下面的设置即可生效:
<customErrorsmode="On"defaultRedirect="/notfound.aspx">
<errorstatusCode="404"redirect="/notfound.aspx"/>
</customErrors>
我的情况是在VS内置IIS里可以运行生效,但部署到服务器用IIS7.5的时候,或许是由于用集成模式导致对“错误的目录”等错误不起效,只对于参数错误的页面起效。
在<system.webServer>里设置即可:
<httpErrorserrorMode="DetailedLocalOnly">
<removestatusCode="404"/>
<errorstatusCode="404"path="/404.htm"responseMode="ExecuteURL"/>
</httpErrors>
有时候对于伪静态地址后面加上参数会报错,比如/info/1.html?ddd=11,加上忽略后面的参数即可。举例如下:
<RewriterRule>
<LookFor>^http://[\w\.]+\w+(:\d+)?/info(/(\d+)|/)?(/(\d+))?.html?(\S*)$</LookFor>
<SendTo><![CDATA[/info/News.aspx?ID=$3&NID=$5]]></SendTo>
</RewriterRule>