我正在考虑使用 IIS Rewrite Module 2.0 来重定向一些损坏的应用程序链接。
以前 www.mydomain.com 是我们的公司站点,而 www.mydomain.com/application1、www.mydomain.com/application2 是我们客户使用的其他应用程序。他们都在同一台服务器上。
现在我们正在更新我们的公司网站并将其移至另一台服务器。所以 www.mydomain.com 和 mydomain.com 解析到不同的服务器。作为这项工作的一部分,我们创建了一个 app.mydomain.com 的子域来容纳仍然驻留在我们服务器上的客户应用程序。
我想要做的是在新公司站点的服务器上安装重写模块,并将 www.mydomain/application1 或 mydomain.com/application1 重定向到 app.mydomain.com/application1。
我有列表应用程序,所以也许使用 rewriteMap 是要走的路?这将防止任何重定向,如 www.mydomain.com/newcorporateurl 被错误地重定向。我还需要保留子文件夹和查询字符串(由于人们有浏览器书签),例如 www.mydomain.com/application1/index.aspx?id=1 需要转到 app.mydomain.com/application1/index.aspx?id= 1
将这些放在一起的任何帮助都会很棒!甚至只是对基本配置进行排序,这样我就可以玩弄它并更多地理解它。我一直在浏览其他问题和资源,但仍在努力如何将它们组合在一起
更新 1
以下内容不起作用,但希望它能证明我正在尝试做的事情。我有大约 15 个或需要以这种方式重定向的应用程序。
<rewrite>
<rules>
<rule name="application1 rule" stopProcessing="true">
<match url="(www\.)?mydomain\.com(:80)?/application1/?" />
<action type="Redirect" url="app.mydomain.com/application1/" appendQueryString="false" />
</rule>
<rule name="application2 rule" stopProcessing="true">
<match url="(www\.)?mydomain\.com(:80)?/application2/?" />
<action type="Redirect" url="app.mydomain.com/application2/" appendQueryString="false" />
</rule>
</rules>
</rewrite>
更新 2
我有这个工作在一定程度上
<rewrite>
<rules>
<clear />
<rule name="application1 rule" stopProcessing="true">
<match url="application1(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="mydomain.com" />
</conditions>
<action type="Redirect" url="http://app.mydomain.com/application1{R:1}" />
</rule>
</rules>
</rewrite>
这将重定向
www.mydomain.com/application1 -> app.mydomain.com/application1 www.mydomain.com/application1/index.aspx -> app.mydomain.com/application1/index.aspx
我现在要解决的问题就是这个。
www.mydomain.com 上的新站点是一个 CMS。使用上述规则,这意味着 CMS 的 URI 中根本不能包含“application1”。
现实世界的例子是“商业的”
有人可以帮助完善我的规则,因此以下是正确的
www.mydomain.com/commercial -> app.mydomain.com/commercial www.mydomain.com/commercial/foo/index.aspx -> app.mydomain.com/foo/index.aspx
www.mydomain.com/tv-commercials/list -> www.mydomain.com/tv-commercials/list www.mydomain.com/commercial-property/list -> www.mydomain.com/commercial-property/list