IIS-端口重定向-重写模块-Web.Config文件

时间:2019-01-24 20:00:51

标签: iis module url-rewriting web-config

我试图创建一个适当的web.config文件来重定向最终用户,目的是向请求中添加端口。

例如,任何键入http://subscribe.service.com/lists/index.html的最终用户都将被重定向到http://subscribe.service.com:3000/lists/index.html,以便无论调用了什么请求,它都会添加到其中:3000。

下面提供了我正在使用的代码示例。在验证测试中,它似乎可以按我希望的那样工作。实际上,当我进入实体网站时,什么也没有发生。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpRedirect enabled="false" destination="" childOnly="true" httpResponseStatus="Permanent" />
        <rewrite>
            <rules>
                <rule name="3000 Port Redirect" enabled="true" stopProcessing="true">
                    <match url="http:/(.*)com" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="\.com(.*)" />
                    </conditions>
                    <action type="Redirect" url="{R:0}:3000{C:1}" appendQueryString="true" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

1 个答案:

答案 0 :(得分:0)

如Lex Li的文章所述,URL重写模型partern与域不匹配。这意味着IIS使用lists / index.html来匹配“ http:/(。*)com”规则。这样您会发现您的规则不起作用。

我建议您可以尝试使用以下url重写规则。

  <rule name="rewrite to 81 port" enabled="true">
                <match url="(.*)" />

                <action type="Redirect" url=" http://subscribe.service.com:3000/{R:0}"  appendQueryString="true"/>
            </rule>

那么它将很好地工作。