我也許希望從ASP.NET太多,但在Apache中是微不足道的重寫URL請求等等類似: http://mysite/myfolder/mypage/niceurlparameter 實際上設法提供靜態頁面http://mysite/mypage.html此Global.asax路由設置有什麼問題?
我該怎麼做,在Global.asax中?
我已經試過這樣:
RouteTable.Routes.MapPageRoute("Static HTML", "myfolder/{page}/*", "~/myfolder/{page}.html");
但它一直返回404,當我要求http://mysite/myfolder/mypage/niceurlparameter。
然而,這個工程:
RouteTable.Routes.MapPageRoute("Static HTML", "myfolder/{page}.html/*", "~/myfolder/{page}.html");
所以請求http://mysite/myfolder/mypage.html/niceurlparameter當我得到的mypage.html。
我只想擺脫我的網址中的「.html」部分。我錯過了什麼?
更新: 出於某種原因,在前一種情況下,'*'通配符未被接受。
更改爲:
RouteTable.Routes.MapPageRoute("Static HTML", "myfolder/{page}/{whatever}", "~/myfolder/{page}.html");
出現路由到HTML頁面的請求,但後來我得到的錯誤:
There is no build provider registered for the extension '.html'.
爲什麼在世界上它只是在前者的情況下工作(與HTML中的URL),而不是當HTML被遺漏了嗎?
您運行的是哪個版本的IIS?我似乎記得IIS 6不會允許這個開箱即用,您需要添加通配符映射。 – 2012-04-27 08:58:14
看到這個問題的可能的解決方案:http://stackoverflow.com/q/9918066/25727 – Jan 2012-04-27 09:01:07
IIS是v7.5。建議的鏈接有幫助。謝謝 – tishma 2012-04-27 11:11:14