मैं अतीत में निम्न समाधान के साथ गया हूं जब मैं आईआईएस सेटिंग्स को संशोधित करने में सक्षम नहीं हूं।
या तो एक HTTP मॉड्यूल (शायद सबसे साफ), या global.asax.cs में Application_BeginRequest में या कुछ बेसपेज प्रकार की घटनाओं में, जैसे ऑनइनिट I अनुरोधित यूआरएल के खिलाफ एक जांच करता है, एक ज्ञात स्ट्रिंग के साथ मैं उपयोग करना चाहता हूं:
public class SeoUrls : IHttpModule
{
#region IHttpModule Members
public void Init(HttpApplication context)
{
context.PreRequestHandlerExecute += OnPreRequestHandlerExecute;
}
public void Dispose()
{
}
#endregion
private void OnPreRequestHandlerExecute(object sender, EventArgs e)
{
HttpContext ctx = ((HttpApplication) sender).Context;
IHttpHandler handler = ctx.Handler;
// Only worry about redirecting pages at this point
// static files might be coming from a different domain
if (handler is Page)
{
if (Ctx.Request.Url.Host != WebConfigurationManager.AppSettings["FullHost"])
{
UriBuilder uri = new UriBuilder(ctx.Request.Url);
uri.Host = WebConfigurationManager.AppSettings["FullHost"];
// Perform a permanent redirect - I've generally implemented this as an
// extension method so I can use Response.PermanentRedirect(uri)
// but expanded here for obviousness:
response.AddHeader("Location", uri);
response.StatusCode = 301;
response.StatusDescription = "Moved Permanently";
response.End();
}
}
}
}
फिर अपने web.config में वर्ग रजिस्टर:
<httpModules>
[...]
<add type="[Namespace.]SeoUrls, [AssemblyName], [Version=x.x.x.x, Culture=neutral, PublicKeyToken=933d439bb833333a]" name="SeoUrls"/>
</httpModules>
इस विधि हमारे लिए काफी अच्छी तरह से काम करता है।
स्रोत
2009-02-06 21:25:29
यह "विहित नाम" कहा जाता है, तो आप कहीं और उसे ढूंढने की कामना करते हैं। –
यह जानना महत्वपूर्ण है कि यदि आप www (या कुछ अन्य सबडोमेन) का उपयोग नहीं करते हैं तो सभी कुकीज़ प्रत्येक सबडोमेन एमडीडी में जमा की जाएंगी, इसलिए आप स्थिर सामग्री की सेवा के लिए कुकी-कम सबडोमेन नहीं पाएंगे जिससे इस प्रकार कम हो जाता है ब्राउज़र और सर्वर के बीच आगे और पीछे भेजे गए डेटा की मात्रा। बाद में आपको खेद हो सकता है: http://twitter.com/codinghorror/statuses/1637428313 –
@Diodeus - क्या हमें इसके लिए वास्तव में एक टैग चाहिए? – theycallmemorty