簡體   English   中英

ASP.Net MVC 3使用嵌套虛擬目錄進行路由,錯誤403

[英]ASP.Net MVC 3 Routing with Nested virtual directories, 403 Error

我們當前的托管公司不允許將多個域的主機標頭條目添加到一個主域下的不同虛擬目錄中,因此我們在Global.asax Begin_Request EventHandler中有一些代碼。 到目前為止,一切正常!

    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-匹配並轉到〜/ Other / Default.aspx(“〜/ Other /”目錄也是虛擬目錄,我們使用的是ASP.Net)。

這不是:
www.seconddomain.com-www.seconddomainname.com/second/失敗!!!
“〜/ SECOND /”目錄也是一個虛擬目錄,但是我們使用帶有路由的ASP.Net MVC 3,我們收到的錯誤是“ HTTP 403”,這表明我們需要允許文件權限,即“ SECOND”目錄被配置為虛擬Web目錄。

編輯:添加路線

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

我們是否錯過了一些非常基本的東西,否則是否有針對此類托管,路由和ASP.Net配置的整體解決方案?

我沒有遇到過這樣的問題,但是您嘗試了Server.Transfer嗎? 我不確定您是否嘗試使用此路由發布請求,如果這樣,則使用response.redirect丟失了發布的變量,並且您可能無法映射到接受一定數量的控制器的正確操作。參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM