【问题标题】:IIS rewrite rule to get domain without tldIIS 重写规则以获取没有 tld 的域
【发布时间】:2017-07-18 18:24:50
【问题描述】:
希望创建一个有效的 IIS 重写(不是重定向)规则,以将 http{s}://www.client1.com/page1.htm 重写为 https://client1 .mysite.com/myapp/client1/page1.htm - 我就是无法让它工作。让我有点发疯。
我的主要问题是获取没有 TLD 部分的域名作为 R{x} 或 C{x} 参数返回...
注意客户端名称在目标 url 中的两个位置 - 并且注意原始 url 可能是 client2.com 或 client3.org 或 client4 .net
【问题讨论】:
标签:
url-rewriting
iis-7.5
【解决方案1】:
这条规则会为你重写:
<rules>
<rule name="Rewrite clients domains" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(www\.)?([a-zA-Z0-9\-\.]+)\.(\w+)$" />
</conditions>
<action type="Rewrite" url="{MapProtocol:{HTTPS}}://{C:2}.mysite.com/myapp/{C:2}/{R:0}" />
</rule>
</rules>
<rewriteMaps>
<rewriteMap name="MapProtocol">
<add key="on" value="https" />
<add key="off" value="http" />
</rewriteMap>
</rewriteMaps>