Url rewriting 使用IIS URL重写将子文件夹重定向到子域/子文件夹
我正在研究使用IIS重写模块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 我有列表应用程序,所以也许使用重写映射是一种方法?这将防止像www.mydomain.com/newcorporateurl这样的重定向被错误地重定向。我还需要保留子文件夹和查询字符串(由于人们有浏览器书签),如www.mydomain.com/application1/index.aspx?id=1需要转到app.mydomain.com/application1/index.aspx?id=1 如果有人能帮我把这些放在一起,那就太好了!即使只是对基本配置进行排序,这样我就可以玩一玩,并进一步理解它。我一直在浏览其他问题和资源,但仍在努力将其整合在一起 更新1 下面的内容不起作用,但希望它能说明我正在努力做什么。 我有大约15个或多个应用程序需要以这种方式重定向Url rewriting 使用IIS URL重写将子文件夹重定向到子域/子文件夹,url-rewriting,iis-7.5,url-rewrite-module,Url Rewriting,Iis 7.5,Url Rewrite Module,我正在研究使用IIS重写模块2.0重定向一些断开的应用程序链接 以前,www.mydomain.com是我们的公司网站,而www.mydomain.com/application1、www.mydomain.com/application2是我们客户使用的其他应用程序。它们都在同一台服务器上 现在,我们正在更新公司网站并将其移动到另一台服务器。因此,www.mydomain.com和mydomain.com解析为不同的服务器。作为这项工作的一部分,创建了app.mydomain.com的子域,以
<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,则第一条规则将重定向到尾部斜杠 第二条规则重定向到子域忽略大小写,保留querystring并将其视为永久重定向
<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,我将创建另一个规则。您有多少个应用程序?这里有图案吗?(比如从
app
开始)到目前为止你试过什么吗?@cheesemacfly我已经用我的出发点更新了这个问题。这不起作用,但希望能证明我正在努力实现的目标,因为这最终满足了我的需求