我在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时,它仍然显示旧页。
答案 0 :(得分:0)
只是等级设定 -
您在同一台计算机上运行了两个ASP.NET应用程序。一个用于为www.yourdomain.com提供内容,另一个用于为test.yourdomain.com提供内容
显然,这两个ASP.NET应用程序位于不同的文件夹中,并且具有不同的IIS应用程序名称。你没有说出它们是什么,但为了举例,我假设应用程序名称是TestApplication和ProductionApplication,具有匹配的虚拟目录名称。
您希望所有流量都转到一个方框。如果用户输入URL的主机是www.yourdomain.com,则该请求应由ProductionApplication处理;否则它由TestApplication处理。
所以就路由而言......
我了解这些要求吗?
如果是这样,使用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上找到。