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




redirect search-engine (4)

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

Response.RedirectPermanent(NEW_URL);

मैं वेबसाइट के लिए यूआरएल रीडायरेक्ट को लागू करने की कोशिश कर रहा हूं। मैं इसे 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"));
    }

}

मुख्य समस्या: आप उपरोक्त सामग्री को Application_Start में कर रहे हैं - जो केवल एक बार निष्पादित होता है आपको प्रत्येक अनुरोध के साथ हुक चाहिए इसे इस्तेमाल करे:

void Application_BeginRequest(object sender, EventArgs e) 
{
    // Code that runs on every request

    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"));
    }

}

यूआरएल पुनर्रचना का उपयोग करने के लिए एक और भी बेहतर तरीका होगा, जिसे वेब के अंदर कॉन्फ़िगर किया जा सकता है। Web.Config :

माइक्रोसॉफ्ट रीडरिंग मॉड्यूल - यूआरएल पर फोर्स www या यूआरएल से www को हटा दें


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

विकल्प 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>    

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 स्थायी रीडायरेक्ट्स: सबसे अच्छा समाधान







http-status-code-301