簡體   English   中英

如何區分ASP.NET中的/(root)和/default.aspx

[英]How to differentiate between / (the root) and /default.aspx in ASP.NET

Request.RawUrl始終返回/default.aspx變體。 我沒有發現在所有任何方式對這些網址進行區分。 有誰知道怎么做? IIS 7上的環境是.NET 3.5SP1。

在設計我的URL重寫器時,我實際上不得不解決同樣的問題。 它與您甚至可以訪問URL之前發生的過程有關。 要解決此問題,您必須確保在IIS 7中關閉默認頁面處理。 因為如果沒有默認的頁面處理,它將不會經歷嘗試將其映射到驅動器的額外步驟,因此您將是所請求的確切URL。 但這可能是也可能不是一個選項,具體取決於您是否使用System.Web.Routing

要關閉默認頁面處理,您需要執行以下操作:

  1. 在IIS中轉到您的站點
  2. 轉到默認文檔
  3. 單擊右上角的“ 禁用 ”。

或者您可以將以下內容添加到web.config

<system.webServer>
    <!-- ... other tags here ... -->
    <defaultDocument enabled="false" />
</system.webServer>

執行此操作后,默認文檔將不再添加到您的URL。 但是注意,由於這不再是活動的,你不能依賴default.aspx實際映射到你的目錄,你必須手動處理它或使用像System.Web.Routing這樣的東西來處理這個功能。

要在IIS 6中完成相同的操作,您需要打開通配符:

以下說明適用於IIS 6。

  1. 打開IIS並右鍵單擊網站並選擇“屬性”。
  2. 單擊“應用程序設置”部分下的“配置”按鈕
  3. 單擊“插入...”按鈕以創建新的通配符映射
  4. 將可執行文本框設置為aspnet_isapi.dll文件位置。 for .net 2.0,3.0,3.5:C:\\ Windows \\ Microsoft.NET \\ Framework \\ v2.0.50727 \\ aspnet_isapi.dll
  5. 確保未選中“驗證文件是否存在”復選框。
  6. 按“確定”確認並關閉所有窗口。

注意:順便提一下,我在上面鏈接的網站上提供了所有來源的方式,你很好奇我是怎么做的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM