2010-04-30 61 views
0

我正在使用.NET 4.0上的WebForms構建CMS,並具有以下路線,允許諸如www.mysite.com/about之類的URL映射到查找動態內容的Page.aspx頁面。是否有可能將.NET路由映射到與目錄相同的位置?

問題是我的項目中有幾個文件夾正在干擾可能的URL。例如,我有一個名爲「blog」的文件夾,用於存儲與處理博客功能相關的頁面,但如果有人爲他們的站點創建了名爲「blog」的頁面,則導航到www.mysite.com/blog會出現以下錯誤:

403 - Forbidden: Access is denied. You do not have permission to view this directory or page using the credentials that you supplied.

其他類似的URL路徑正確,但我認爲,因爲.NET是識別/博客作爲服務器上拒絕目錄訪問的物理位置。有沒有辦法告訴IIS/.NET只查找物理文件而不是文件和文件夾?

回答

1

它看起來像IIS拒絕您訪問實際的文件夾。

默認情況下,路由應該承諾文件系統。雖然這可以關閉。

+0

如何關閉它,它是IIS中的設置還是web.config? – Austin 2010-05-03 12:12:05

+1

http://msdn.microsoft.com/en-us/library/cc668201.aspx有路由文檔。這是該功能的具體鏈接 http://msdn.microsoft.com/en-us/library/system.web.routing.routecollection.routeexistingfiles.aspx – ggonsalv 2010-05-03 23:01:28

+0

好的,那就是我一直在尋找的。我只是不得不忽略一些路線,以防止系統在磁盤上處理我的.aspx文件。如果其他人需要它們,我使用 routes.Ignore(「{* allaspx}」,new {allaspx = @「。* \。aspx(/.*)?」});來自Phil Haack的帖子的 :http://haacked.com/archive/2008/07/14/make-routing-ignore-requests-for-a-file-extension.aspx – Austin 2010-05-04 14:01:29

相關問題