Возможно, я слишком многого ожидал от ASP.NET, но в Apache тривиально переписать URL-адреса, поэтому запросить что-то вроде: http ://mysite/myfolder/mypage/niceurlparameter на самом деле удается обслуживать статическую страницу http ://mysite/mypage.html
Как мне это сделать в 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");
, поэтому я получаю mypage.html при запросе http ://mysite/myfolder/mypage.html/niceurlparameter .
Я просто хочу избавиться от части «.html» в своих URL-адресах. Что мне не хватает?
ОБНОВЛЕНИЕ :По какой-то причине в предыдущем случае подстановочный знак '*' не был принят.
Изменение на :
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 не учитывается?