Asp.net
非aspx頁面的404重定向
我正在使用下面的 web.config 程式碼將對失去頁面的請求重定向到 404 錯誤處理頁面:
<customErrors mode="On" defaultRedirect="404.aspx" redirectMode="ResponseRewrite"> <error statusCode="404" redirect="404.aspx"/> </customErrors>當我查找諸如“missing.aspx”之類的頁面時,它可以正常工作,但它不適用於沒有“.aspx”副檔名的頁面,例如“missing.asp”或只是“missing”。當它不起作用時,它只會載入一個標準的 IIS 7.5 錯誤頁面。
我究竟做錯了什麼?我正在使用.net 4。我注意到其他人問同樣的問題,但他們沒有得到答案。
謝謝!
正如dbaseman所說,這是因為非 asp.net 文件不會呼叫 asp.net 處理程序。強制 asp.net 處理程序對所有請求進行操作的一種簡單方法是在 web.config 中設置以下內容。
<system.webServer> <modules runAllManagedModulesForAllRequests="true"> </system.webServer>這告訴 IIS 為所有請求(例如 .html、.jpg、.css、.js 等)執行所有託管模組。這通常是不受歡迎的,因為它只會引入額外的處理和延遲。
另一個嘗試的選項(比上面更乾淨)作為答案發佈在這裡:https ://stackoverflow.com/a/6661699/701062