我试图创建一个适当的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>
答案 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>
那么它将很好地工作。