首页 > 解决方案 > IIS 多个 URL 重写规则

问题描述

我在一台服务器上安装了 IIS,并且需要很少的 url重写规则。所有规则都必须指向不同的服务器/url。例如:

http://my-iis-server       --> http://web-server-0/category
http://my-iis-server/site1 --> http://web-server-1/category1
http://my-iis-server/site2 --> http://web-server-2/category20
http://my-iis-server/site3 --> http://web-server-3/category33

第一条规则很简单。当尝试实施其余规则时,问题就开始了 ( /site1, /site2, /site3)

如果我有以下模式:Pattern: site1(.*) Rewrite URL: http://web-server-1/{R:1}并导航到:http://my-iis-server/site1结果为404,并且 url 更改为:http://my-iis-server/category1which dont exists ofc。

知道如何保留siteX主网址吗?

一般来说,这是正确的方法吗?虚拟目录会更干净/更容易吗?

标签: iisiis-8.5

解决方案


根据您的描述,我建议您可以尝试使用以下 url 重写规则:

            <rule name="for site 1">
                <match url="site1(.*)" />
                <action type="Rewrite" url="http://web-server-1/category1{R:1}" />
            </rule>
            <rule name="for site 2">
              <match url="site2(.*)" />
              <action type="Rewrite" url="http://web-server-2/category20{R:1}" />
            </rule>
            <rule name="for site 3">
              <match url="site3(.*)" />
              <action type="Rewrite" url="http://web-server-3/category33{R:1}" />
            </rule>
            <rule name="for site 4">
              <match url="(.*)" />
              <action type="Rewrite" url="http://web-server-0/category" />
            </rule>

推荐阅读