2011-08-05 7 views
2

自分の顧客のために、自分が作成したMVC3サイトに自分のWebページを持つことができるサービスを作成したいと考えています。私はビジネスがwww.BusinessName.mydomain.comMVC3を使用してサブドメインをルーティングする

のように見えるURLを持つことができるようにしたい

は私がこれを行うことができますMVC3内のルートを作成することが可能ですか?

ご協力ありがとうございます

私はもう少しお知りになりました。

理想的には、IISのサブドメインにワイルドカードを使用できるようにしたいと思いますが、私が行ったリサーチからはこれは不可能なようです。

私は手動でIISにwww.mycompany.mydomain.comを追加し、だから今、私はwww.mycompanyname.mydomain.comを閲覧することができますし、正しいコントローラである。この

public class SubDomainRoute : RouteBase 
    { 

     public override RouteData GetRouteData(HttpContextBase httpContext) 
     { 
      var url = httpContext.Request.Headers["HOST"]; 

      var subDomain = Helpers.Helpers.GetSubDomain(url); 
      if (subDomain==null) 
       return null; 
      var routeData = new RouteData(this, new MvcRouteHandler()); 

      switch (subDomain) 
      { 
       case "mycompany": 
        routeData.Values.Add("controller", "SubDomain"); 
        routeData.Values.Add("action", "Index"); 
        break; 
       default: 
        routeData.Values.Add("controller", "Home"); 
        routeData.Values.Add("action", "Index"); 
        break; 
      } 

      return routeData; 
     } 

     public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values) 
     { 
      return null; 
     } 
    } 

を含むように私のglobal.ascxを更新しましたロードされる。

私は今問題が2つあります。

www.mistake.mydomain.comを参照すると、502エラーが表示されます。 www.mistake.mydomain.comが見つからない場合は、IISでwww.mydomain.comにリダイレクトするために何ができますか?

私がwww.mycompanyname.mydomain.comを閲覧すると、メインメニュー内のすべてのリンクが今すぐに向けられています。 www.mycompanyname.mydomain.com/contactusが間違っています。どのようにメニュー項目がURL内のサブドメインを使用していないことを確認しますか?

答えて

0

私はわずかに異なるアプローチを推奨します - このWebサイトはIIS上の唯一のものでなければならないという注意があります。 IISはワイルドカードホストヘッダーをサポートしていないため、既定のWebサイトである必要があります。

このようにして、すべてのリクエスト(www.mistake.mydomain.comを含む)がアプリケーションのフロントドアに届き、適切に処理できます。

MVCアプリケーションでは、サブドメインのルーティングを使用しないで、Application_BeginRequestを使用します。そこでは、Request.Headers ["HOST"]で何をしなければならないかを行い、必要な場所に送信します。

私はそれを参照してください方法

は、ルートは

+0

おかげVnuk ...彼がサイトに到達したときに訪問されたサイトのユーザー決定するのではなく、ユーザーをルーティングするために使用されることを意図しています。同じボックスにいくつかの他のサイトがあります。さもなければあなたは示唆が意味を成す –

関連する問題