【问题标题】:How to remap all the request to a specific domain to subdirectory in ASP.NET如何将所有请求重新映射到特定域到 ASP.NET 中的子目录
【发布时间】:2012-07-14 13:00:23
【问题描述】:

我在一个托管帐户中使用具有多个域的 ASP.NET 4.0(集成管道)。我已经设置了主域,但我想使用文件夹层次结构清楚地分隔域。 (我有根 FTP 访问权限,可以将除主域之外的所有域映射到子文件夹)我也需要将主域映射到文件夹。我确信 ASP.NET 确实提供了这样的功能,可能在 web.config 设置中,但我不知道该怎么做。我所有的搜索都导致了 PHP/Apache 设置,但我找不到关于 ASP.NET 无缝重新映射的设置。

例如,我的 FTP 根目录中有以下站点: /sites/abc.com

/站点/另一个站点

/sites/xyz.com

/sites/mymastersite.com

我需要将所有请求映射到 mymastersite.com 到 /sites/mymastersite.com 文件夹(包括所有子域)的 web.config 无缝地放入我的根目录。

【问题讨论】:

    标签: asp.net url-rewriting asp.net-4.0 remap


    【解决方案1】:

    我认为正确的解决方案是 IIS 的每个请求都直接转到正确的站点,而不是像你说的那样在根目录上。

    我能想到的一种方法是在Global.asax 上使用Application_BeginRequestRewritePath 到最终目的地,并且仍然有没有/site/ 路径的链接。

    protected void Application_BeginRequest(Object sender, EventArgs e)
    {   
        if(HttpContext.Current.Request.Host.EndsWith("xyz.com"))
           RewritePath("/sites/xyz.com" + HttpContext.Current.Request.Path, false);  
    }
    

    【讨论】:

    • 我也考虑过 Global.asax,但是在 web.config 中设置一些东西不是更灵活、更干净吗?在搜索了几个小时后,我设法为某些域添加了一些规则,但我正在为每个域编写它,并且需要一个灵活/自动的解决方案,以便将来能够处理更新的子域。
    • @canpoyrazoğlu 比这更干净? - web.config 只是一个 xml 文件,同样的代码可以完成这项工作。
    • @canpoyrazoğlu 我想告诉你,这通常不是正确的方法,你将面临其他问题(除非你的网站非常简单,没有其他 RewritePath 和复杂的调用。iis必须将您的网站分开。
    猜你喜欢
    • 1970-01-01
    • 2017-06-29
    • 2015-10-26
    • 1970-01-01
    • 2016-02-10
    • 2016-05-03
    • 2012-07-10
    • 2013-10-21
    • 1970-01-01
    相关资源
    最近更新 更多