對於更加用戶友好的環境,我希望刪除頁面擴展並查詢字符串不可見。例如,從http://www.example.com/news.aspx?id=123我希望它是http://www.example.com/news/123。我如何獲得它?查詢字符串的ASP.NET URL重寫
我也想利用這個問題的機會,把另外兩個問題:
- 當使用URL重寫,我必須指定每個頁面的規則?
- 哪個更適合用於ASP.NET中的URL重寫 -
.htaccess
文件或web.config
中的規則設置?
感謝。
對於更加用戶友好的環境,我希望刪除頁面擴展並查詢字符串不可見。例如,從http://www.example.com/news.aspx?id=123我希望它是http://www.example.com/news/123。我如何獲得它?查詢字符串的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
);
您在相同的方式來你在MVC將登記在Global.asax的應用程序啓動時,這些「路線」。
這將允許http://www.domain.com/news/123以與http://www.domain.com/news.aspx?id=123相同的方式在您的web應用程序中被解釋。
Here's a recent article on using the MVC routing namespace in a traditional aspx application.
- 當使用URL重寫,我必須爲每個
頁面的規則?
沒有最URL重寫機制允許正則表達式中使用的URL相結合,使用一個特定的規則。
- 哪個是更好地使用URL中的ASP.NET重寫 - 在
.htaccess文件或規則在web.config中的設置?
當使用IIS 7或者,你可以使用IIS URL重寫模塊,見http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/
當使用IIS 6或降低我喜歡URL重寫從模塊:http://www.urlrewriting.net/但還有其他你可以使用。
好的建議,但這些依賴於IIS的版本或額外的模塊。該System.Web.Routing命名空間是出於這樣的目的在.NET Framework中的正式實施命名空間。 – 2012-02-17 08:27:42