2012-03-13 20 views
1

現在のホスティング会社では、複数のドメインのホストヘッダーエントリが1つのプライマリドメイン下の異なる仮想ディレクトリに許可されないため、Global.asax Begin_Request EventHandler 。これまでのところうまくいきます!ASP.Net MVC 3ネストされた仮想ディレクトリでのルーティング、403エラー

protected void Application_BeginRequest(object sender, EventArgs e) 
    { 
     Dictionary<string, string> domains = new Dictionary<string, string>() { { "otherdomain.com", "~/Other/Default.aspx" }, { "seconddomain.com", "~/SECOND/" } }; 

     string requestedDomain = Request.ServerVariables["SERVER_NAME"].ToLower(); 

     foreach (var domain in domains.Keys) 
     { 
      if (requestedDomain.Contains(domain)) 
       Response.Redirect(domains[domain]); 
     } 
    } 

これらの作業:
www.primarydomain.comは - 一致すると〜/ Default.aspxの
www.otherdomain.comにフォールスルーしない - 試合と〜/その他/ Default.aspxのに行きます( "〜/ Other /"ディレクトリも仮想ディレクトリであり、ASP.Netを使用しています)。


www.seconddomain.com - www.seconddomainname.com/seconds/ FAILS !!!
"〜/ SECOND /"ディレクトリも仮想ディレクトリですが、ASP.Net MVC 3とルーティングを使用していますが、エラーは「HTTP 403」で、ファイルのアクセス許可を必要としていることを示します。「SECOND "ディレクトリは、仮想Webディレクトリとして構成されています。

EDIT:追加されましたルート

routes.MapRoute(
      "Default", // Route name 
      "/SECOND/{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
     ); 

我々はおそらく、非常に基本的な何かを見逃している、またはその他のホスティング、ルーティングとASP.Netのこの種の構成のための総合的な解決策はありますか?

+0

MVCアプリケーションで設定したルート – Lloyd

+0

@Lloyd私はルートでコードを更新しました。 –

答えて

0

このような問題は発生していませんが、代わりにServer.Transferを試してみましたか?もしあなたがこのルートを使って投稿リクエストをしようとしているのであれば、投稿変数がresponse.redirectを使って失われていて、特定の数を受け付けるコントローラの正しいアクションにマップできないかもしれません。パラメーター。

+0

仮想ディレクトリ間でServer.Transferが動作しません。ありがとう –

関連する問題