我正在使用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
这就是我最终得到的。
如果URI为www.mydomain.com/application1,则第一条规则仅重定向至尾部斜杠。
第二条规则忽略大小写重定向到子域,保留查询字符串并将其视为永久重定向。
<rule name="Trailing Slash Redirect" stopProcessing="true">
<match url="^(application1|application2)$" ignoreCase="true" />
<action type="Redirect" url="{R:0}/" redirectType="Permanent" />
</rule>
<rule name="Http App Redirect" stopProcessing="true">
<match url="^(application1/.*|application2/.*)$" ignoreCase="true" />
<action type="Redirect" url="http://app.mydomain.com/{R:0}" redirectType="Permanent" />
</rule>
如果需要重定向到Https,我将创建另一个规则。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句