一般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>