301 asp.net 4.0 में पुनर्निर्देशित




redirect search-engine (3)

मैं वेबसाइट के लिए यूआरएल रीडायरेक्ट को लागू करने की कोशिश कर रहा हूं। मैं इसे global.asax फ़ाइल में करना चाहता हूं। नीचे मैं परिभाषित किया है कोड है

मुझे http://website.net मेरी मुख्य यूआरएल के रूप में रखना है और यदि किसी प्रकार के http://www.website.net में एक यूआरएल पुनर्निर्देशन करना चाहते हैं तो मैं चाहता हूं।

दुर्भाग्य से यह लाइव वेबसाइट के लिए काम नहीं कर रहा है क्या कोई भी कोड में समस्या को इंगित कर सकता है कोड किसी भी त्रुटि उत्पन्न नहीं करता है

void Application_Start(object sender, EventArgs e) 
{
    // Code that runs on application startup

    if (HttpContext.Current.Request.Url.ToString().ToLower().Contains("http://website.net"))
    {
        HttpContext.Current.Response.Status = "301 Moved Permanently";
        HttpContext.Current.Response.AddHeader("Location", Request.Url.ToString().ToLower().Replace("http://website.net", "http://www.website.net"));
    }

}

IIS 7 या उच्चतर का उपयोग करते हुए, सरलतम समाधान अपने web.config में httpRedirect तत्व का उपयोग करना है

<httpRedirect enabled="true" exactDestination="true" httpResponseStatus="Permanent">
     <add wildcard="/MyOldAspFile.aspx" destination="/MyNewFile.aspx" />
     <add wildcard="/MyOldHtmlFile.html" destination="/MyNewFile.aspx" />
</httpRedirect>

यह विधि बहुत शक्तिशाली है, उदाहरण के लिए यदि आपने डोमेन को बदल दिया है लेकिन पेज समान हैं, तो आपको बस जोड़ना है:

<system.webServer> 
    <httpRedirect enabled="true" childOnly="true" destination="http://www.mynewdomain.com/" /> 
</system.webServer>

मैंने यहां एक छोटा सा लेख लिखा था: एएसपी.नेट 301 स्थायी रीडायरेक्ट्स: सबसे अच्छा समाधान


पिछले सही और सहायक उत्तर पर बिल्डिंग, यहां कुछ विशिष्ट उदाहरण हैं। मान लें कि आप पुराने पृष्ठ को हटाना चाहते हैं (जैसा कि मैंने किया था), कुछ विकल्प हैं

विकल्प 1: ग्लोबल.एएसएक्स संशोधित करें

 void Application_BeginRequest(object sender, EventArgs e)
    {
        // Add permanent redirection for retired pages
        if (Request.Url.LocalPath.ToLower().StartsWith("/[OLD PAGE NAME]"))
        {
            Response.RedirectPermanent("/[NEW PAGE NAME]", false);
        }
    }

विकल्प 2: वेब। कॉन्फ़िग को संशोधित करें

<system.webServer>
    <httpRedirect enabled="true" httpResponseStatus="Permanent">
        <add wildcard="/[OLD PAGE NAME]" destination="/[NEW PAGE NAME]" />
    </httpRedirect>
</system.webServer>    

वास्तव में, एकल पृष्ठ कार्यान्वयन के लिए एक बेहतर फ़ंक्शन है।

Response.RedirectPermanent(NEW_URL);







http-status-code-301