一般404设置用下面的设置即可生效:
<customErrors mode="On" defaultRedirect="/notfound.aspx"> <error statusCode="404" redirect="/notfound.aspx" /> </customErrors>
我的情况是在VS内置IIS里可以运行生效,但部署到服务器用IIS7.5的时候,或许是由于用集成模式导致对“错误的目录”等错误不起效,只对于参数错误的页面起效。
在<system.webServer>里设置即可:
<httpErrors errorMode="DetailedLocalOnly"> <remove statusCode="404"/> <error statusCode="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>