将子域重定向到另一台服务器上的站点

时间:2018-03-17 00:49:54

标签: asp.net iis dns subdomain

我在www.mydomain.com上设置了一个网站。我正在编写一个新应用程序,该应用程序驻留在我的网络上的另一台计算机上,并希望让我的测试用户访问test.mydomain.com以访问新站点。目前我通过访问www.mydomain.com:8080上的其他端口访问测试站点。如何配置IIS,以便当用户访问test.mydomain.com时,它会调出新站点?

我有我的DNS设置,以便www.mydomain.com和test.mydomain.com都转到旧网站。我需要告诉IIS使用测试服务器来处理以test.mydomain.com开头的所有请求。

我已经通过内部网络共享了该文件夹,正如我之前所说的那样,端口8080在防火墙上打开并映射到测试服务器上的端口80。我在生产服务器上的IIS中设置了一个新站点,并指向网络共享,IIS可以进行身份​​验证并查看新站点,但是当我去test.mydomain.com时,它仍然显示旧页。

1 个答案:

答案 0 :(得分:0)

只是等级设定 -

  1. 您在同一台计算机上运行了两个ASP.NET应用程序。一个用于为www.yourdomain.com提供内容,另一个用于为test.yourdomain.com提供内容

  2. 显然,这两个ASP.NET应用程序位于不同的文件夹中,并且具有不同的IIS应用程序名称。你没有说出它们是什么,但为了举例,我假设应用程序名称是TestApplication和ProductionApplication,具有匹配的虚拟目录名称。

  3. 您希望所有流量都转到一个方框。如果用户输入URL的主机是www.yourdomain.com,则该请求应由ProductionApplication处理;否则它由TestApplication处理。

  4. 所以就路由而言......

    我了解这些要求吗?

    如果是这样,使用IIS重定向规则很容易,您可以在web.config中设置。

    <rewrite>
        <rules>
            <rule name="AnyName" stopProcessing="true">
                <match url=".*" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^test.yourdomain.com$" />
                    <add input="{PATH_INFO}" pattern="^/TestApplication/" negate="true" />
                </conditions>
                <action type="Rewrite" url="\TestApplication\{R:0}" />
            </rule>
        </rules>
    </rewrite>
    

    这告诉IIS每当收到test.yourdomain.com的请求时,就是修改URL并插入&#34; TestApplication&#34;在提供的路径之前。

    对于制作,您可以做一些非常相似的事情:

    <rewrite>
        <rules>
            <rule name="AnyName" stopProcessing="true">
                <match url=".*" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^www.yourdomain.com$" />
                    <add input="{PATH_INFO}" pattern="^/ProductionApplication/" negate="true" />
                </conditions>
                <action type="Rewrite" url="\ProductionApplication\{R:0}" />
            </rule>
        </rules>
    </rewrite>
    

    详细说明可在Scott Forsyth's Blog上找到。