2016-07-05 8 views
0

私の会社は、受信者に追加情報を求めるウェブサイトを訪問するように郵送する予定です。はがきのURLには、追跡の目的で一意のサブドメインが含まれます。ASP.NET:ダイナミックサブドメインの追跡

たとえば、John SmithのURLはjohnsmith.mysite.comのようになります。 Amy JohnsonのはがきのURLはamyjohnson.mysite.comなどとなります。

したがって、2つの質問があります。 1つ、この方法でURLを設定できますか?独自のポストカードを何千も送信するので、ウェブホストの管理セクションに手動でサブドメインを設定するのは現実的ではありません。そして2つ、どのようにasp.netで、私はサブドメインだけをキャプチャできますか?

ありがとうございました

+0

は、それだけの代わりに、 'johnsmith.mysite.com'の' mysite.com/johnsmith'を行うには非常に簡単ではないでしょうか?なぜサブドメインにする必要がありますか? – mason

+0

私の会社の誰かが、パーソナライズされたサブドメインがよりきれいに見え、より多くのコンバージョンにつながると考えています。だから私は、このアプローチが実行可能であるかどうかを研究する必要があります。そうでない場合は、あなたが言及した方法に頼ります。 – goalie35

答えて

0

私は自分の問題を解決するために別の方法を採用しました。これをプログラム的に処理するのではなく、私のウェブホスト(GoDaddy)を使って自分のドメインに "ワイルドカードDNS"を作成しました。自分のドメインがワイルドカードのサブドメインを許可するように設定したら、それat this link.

ためのいくつかの情報があります、私は私のコードの中に入ることができた、と私はサブドメインの名前を抽出することができ、以下、使用:

Uri url = new Uri(System.Web.HttpContext.Current.Request.Url.AbsoluteUri); 
string subDomain = GetSubDomain(url); 

そして...

public string GetSubDomain(Uri url) 
    { 
     if (url.HostNameType == UriHostNameType.Dns) 
     { 
      var host = url.Host; 
      if (host.Split('.').Length > 2) 
      { 
       var lastIndex = host.LastIndexOf("."); 
       var index = host.LastIndexOf(".", lastIndex - 1); 
       return host.Substring(0, index); 
      } 
     } 
     return null; 
    }