2010-02-07 10 views
8

में 301 स्थायी रीडायरेक्ट रूट कैसे करते हैं आप एएसपी.नेट एमवीसी में HTTP 301 स्थायी रीडायरेक्ट रूट कैसे करते हैं?आप एएसपी.NET एमवीसी

+0

302 एक अस्थायी रीडायरेक्ट है ... 301 एक स्थायी है टी – Martin

+0

रीडायरेक्ट करें मैंने इसे सही किया है। – splattne

उत्तर

2

आप एक 301 रीडायरेक्ट चाहते हैं, a 302 is temporary, a 301 is permanent

context.Response.Status = "301 Moved Permanently"; 
context.Response.StatusCode = 301; 
context.Response.AppendHeader("Location", nawPathPathGoesHere); 
+3

पहली पंक्ति की आवश्यकता नहीं है, क्योंकि स्टेटसकोड उचित लेबल भी सेट करेगा। स्थिति बहिष्कृत है। –

8

एक वर्ग है कि ActionResult से विरासत बनाएं ...

 

    public class PermanentRedirectResult : ActionResult 
    {  
     public string Url { get; set; } 

     public PermanentRedirectResult(string url) 
     { 
      this.Url = url; 
     } 

     public override void ExecuteResult(ControllerContext context) 
     { 
      context.HttpContext.Response.StatusCode = (int)HttpStatusCode.MovedPermanently; 
      context.HttpContext.Response.RedirectLocation = this.Url; 
      context.HttpContext.Response.End(); 
     } 
    } 
 

तो यह उपयोग करने के लिए ...

 

     public ActionResult Action1() 
     {   
      return new PermanentRedirectResult("http://stackoverflow.com"); 
     } 


 

एक और पूरी: इस उदाहरण में, context HttpContext है उत्तर जो मार्गों पर रीडायरेक्ट करेगा ... Correct Controller code for a 301 Redirect

+0

क्या होगा यदि मैं पुराने .html फ़ाइलों को पुनर्निर्देशित करने का प्रयास कर रहा हूं जो अब मौजूद नहीं हैं? क्या मैं इन्हें संभालने के लिए रूटिंग का उपयोग कर सकता हूं? सामान्य दृष्टिकोण क्या है? – Rich

+0

मैं शायद इस तरह के कुछ कस्टम मार्गों के साथ जाऊंगा जैसे http://blog.eworldui.net/post/2008/04/ASPNET-MVC---Legacy-Url-Routing.aspx या मैं अभी तक एक HTTP मॉड्यूल का उपयोग कर बेहतर हूं एक अलग कॉन्फ़िगरेशन ताकि आप आसानी से बाहर निकल सकें और अंदर। http://www.hanselman.com/blog/ASPNETMVCAndTheNewIIS7RewriteModule.aspx – JKG

+1

एमवीसी में पहले से ही रीडायरेक्ट स्थायी है। Http://stackoverflow.com/a/16980631/532517 पर एक नज़र डालें –

संबंधित मुद्दे