IIS7URL重写出境的规则
-
25-10-2019 - |
题
我似乎无法得到我头上,围绕这些重写规则,因为某些原因我希望你们可能会有帮助。什么我想要的是一个出境的规则将改写道路链接,img、脚本,并输入标记。
我要改变这样的: http://www.mysite.com/appname/css/file.css
这样的: http://cdn.mysite.com/css/file.css
所以,基本上我需要交换的主机名称和下降的应用程序的名称从该网址。我有预设条件的过滤器来*.aspx文件的设置已经,但是其余部分似乎是希腊语给我。
编辑为了清楚起见
该应用程序在URL上是一个应用程序在IIS。这是一个占位于何种名称发生在使用。它可能是任何超过50个不同的应用程序与我们目前的设置。会有 总是 被一个称.也许,这将使该规则甚至更加容易。
主机名称,在这种情况下www.mysite.com,也可以略有不同的子域。它可能是www1.mysite.com,www2,等等。此外,刚刚意识到我需要保持SSL如果那里。
所以,我想当它涉及到它,我真的只是需要采取的URL,减去应用程序和追加的新的领域,同时尊重该协议使用。
原来的网址:http(s)://{主}/{称}/{URL}
输出:http(s)://cdn.mysite.com/{URL}
解决方案
我假设你的网站的域名总是相同的,那么这个规则应做到:
<rule name="CdnRule" preCondition="OnlyAspx" >
<match filterByTags="Img, Input, Link, Script" pattern="^(.+)://.+?\.(.+?)/.+?/(.*)" />
<action type="Rewrite" value="{R:1}://cdn.{R:2}/{R:3}" />
</rule>
<preConditions>
<preCondition name="OnlyAspx">
<add input="{PATH_INFO}" pattern=".+\.aspx$" />
</preCondition>
</preConditions>
编辑:根据澄清的问题
我假设域(www,www2,...)总是存在,它已被忽略的目标网址。
不隶属于 StackOverflow