簡體   English   中英

ASP.NET URL重寫查詢字符串

[英]ASP.NET URL Rewriting for query strings

為了更加用戶友好的環境,我希望刪除頁面擴展名並查詢字符串不可見。 例如,從http://www.example.com/news.aspx?id=123我希望它是http://www.example.com/news/123 我怎樣才能獲得它?

我還想借此機會提出另外兩個問題:

  • 使用URL重寫時,是否必須為每個頁面指定規則?
  • 哪個更好用於ASP.NET中的URL重寫 - .htaccess文件或web.config的規則設置?

謝謝。

您可以使用ASP.Net MVC中引入的URL路由類來實現此目的。 這些類可以在任何.Net Web應用程序中使用,並且不限於MVC版本。

使用“System.Web.Routing”命名空間,您可以將路由定義為規則,例如;

routes.MapPageRoute(
      "News Category",   // Route name
      "News/{*ID}",      // Route URL
      "~/News.aspx"      // Web page to handle route
   );

您在global.asax應用程序啟動事件中以與在MVC中相同的方式注冊這些“路由”。

這將允許http://www.domain.com/news/123以與http://www.domain.com/news.aspx?id=123相同的方式在您的Web應用程序中進行解釋。

這是最近一篇關於在傳統的aspx應用程序中使用MVC路由命名空間的文章。

  • 使用URL重寫時,是否必須為每個重寫指定規則
    頁?

沒有大多數URL重寫機制允許使用正則表達式來組合URL以使用一個特定規則。

  • 哪個更好用於ASP.NET中的URL重寫 -
    .htaccess文件或web.config中的規則設置?

使用IIS 7或更高版本時,可以使用IIS URL重寫模塊,請參閱http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/

使用IIS 6或更低版本時,我更喜歡以下網址重寫模塊: http//www.urlrewriting.net/但您可以使用其他模塊。

暫無
暫無

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

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