使用虚拟目录重写Azure App Service中域的路径的URL

时间:2018-01-12 22:17:13

标签: azure iis url-rewriting azure-web-sites

我已经设置了一个Azure App Service来使用虚拟目录。 路径my-app.azurewebsites.net/api正在与网站wwwroot/api一起正常运行。

我有一个api.mydomain.commy-app.azurewebsites.net的CNAME记录,其效果也不错。我可以成功致电api.mydomain.com/api

但是,我想使用子域而不是路径,将api.mydomain.com重写为api.mydomain.com/api

我在web.config目录中添加了一个wwwroot文件,现在看起来像是

wwwroot/
- api/
- web.config

的web.config:

<rewrite>
  <rules>
        <rule name="My redirection">
            <match url="(.*)" />
            <conditions>
                <add input="{HTTP_HOST}" pattern="^api.mydomain.com$" />
            </conditions>
            <action type="Redirect" url="https://api.mydomain.com/api/{R:1}" redirectType="Permanent" />
        </rule>
    </rules>
</rewrite>

重新启动后,App Service无法响应,不再提供请求。有没有更好的方法来实现这一点,还是我需要修改我的重写?

1 个答案:

答案 0 :(得分:0)

经过几次尝试,我发现了这个错误。必须将Redirect更改为Rewrite

<rewrite>
  <rules>
        <rule name="My redirection">
            <match url="(.*)" />
            <conditions>
                <add input="{HTTP_HOST}" pattern="api.mydomain.com$" />
            </conditions>
            <action type="Rewrite" url="api/{R:1}" />
        </rule>
    </rules>
</rewrite>