2016-03-21 34 views
0

.aspx için .html istekleri yönlendirip uzantılar görüntülenir.isteklerinden uzantıları .html soyma ve sayfaları ben <code>.aspx</code> sayfalara <code>.html</code> uzantılarıyla gelen HTTP isteklerini işaret ve tarayıcıda öyle ki ne <code>.html</code> veya <code>.aspx</code> URL'leri yeniden yazmaya çalışıyorum

Detayları:

kullanıcı isteği, diyelim ki, localhost:123/lorem/ipsum.html, ben ~/Views/lorem/ipsum.aspx sayfa döneceğini zaman. URL, localhost:123/lorem/ipsum gibi görünmelidir.

Bunun yarısı, AspNet.FriendlyUrls paketi ile işlenir. Benim RouteConfig.cs dosyasında, böyle bir dizi kural vardır:

routes.MapPageRoute("Ipsum", "lorem/ipsum", "~/Views/lorem/ipsum.aspx");

Bu emin olur bir kullanıcı localhost:123/lorem/ipsum kapalı bir istek gönderirse, tarayıcıda doğru URL terminoloji ile daha sonra .aspx sayfa yüklendiğinde penceresi.

En son olarak .html ile gelen istekleri genişletmenin bir yolunu bulmak istiyorum.

routes.MapPageRoute("Ipsum Html Redirect", "lorem/ipsum.html", "~/Views/lorem/ipsum.aspx");

: Doğru URL'yi görüntülemek için web config URL yeniden yazar kullanmanın umutlarla, .html .aspx için sayfalarından yönlendirmek için başka RouteConfig.cs kuralı ekleyerek, ancak sayfasına giderek çalıştı 404 sonuçlandı

Yönlendirme boru hattı konusunda kafam çok karışık. Web.config yeniden yazma/yönlendirme kuralları RouteConfig.cs kurallarına göre öncelik kazanıyor mu? Sorunumu,kurallarım ile çalışacak şekilde bir Web.config yeniden yazma veya yönlendirme kuralı ekleyerek düzeltmenin bir yolu var mı?

cevap

0

Buraya bir çözüm bulmak için Scott Hanselman'dan this blog linkini kullanarak bitirdim. Çözüm bu kodu Web.config dosyasına eklemek oldu:

<system.webServer> 
    <rewrite> 
     <rules> 
      <rule name="extensionless" stopProcessing="true"> 
        <match url="(.*)\.html$" /> 
        <action type="Redirect" url="{R:1}" redirectType="Permanent" /> 
      </rule> 
     </rules> 
    </rewrite> 
</system.webServer>