asp.Net正しい301永久リダイレクト方法


次のような場合があります.
2つのドメイン名:atnet.ccとops.ccはすべて1つのホストに解析されるのでabcにかかわらず.atnet.ccかbbcかops.ccはホストの上デフォルトサイトにアクセスします.
これはSEOにとって非常に友好的ではありません.この場合、301リダイレクト技術を使用してすべてのサブドメイン名をwww.opsに指向する必要があります.cc
 
著者らはHttpModuleによって301リダイレクトを実現し、コードは以下の通りである.

namespace OSite.Web
{
    using System.Web;

    public class MyHttpModule : IHttpModule
    {
        public void Dispose()
        {
            
        }

        public void Init(HttpApplication context)
        {
            context.BeginRequest += (o, e) =>
            {
                HttpContext c = HttpContext.Current;
                if (c.Request.Url.Host.IndexOf(".ops.cc") == -1)
                {
                    c.Response.StatusCode = 301;
                    string path = c.Request.Url.PathAndQuery;
                    c.Response.Headers.Add("Location", "http://www.ops.cc"+path);
                }
            };
        }
    }
}

アクセスするとします:bbc.ops.cc/web/,プログラムはwww.opsに指向する.cc/web/
これでメインステーションの重みに影響しません
 
最後にWebConfigのHttpModuleにHttpmoduleクラスを追加する必要があります
 
注意:時間が緊急で、作者は直接コードをコピーして、実際の応用の中であなたの自分のドメイン名に修正する必要があります