在Azure应用服务中添加重写规则的正确方法是什么

时间:2017-02-20 18:59:54

标签: url-rewriting web-config azure-web-sites web-config-transform

我想在我的Azure应用服务中添加重写规则,但如果我尝试使用如下所示的简单重写创建web.config,则该站点将返回HTTP 500。

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Test" stopProcessing="true">
                    <match url="test" />
                    <action type="Rewrite" url="/index.html" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

我所做的是从头开始创建web.config并将其FTP到应用服务的wwwroot文件夹中,这是我对其余网站文件进行Ftp的地方。

我在Azure中看到了关于web.config文件的old conversation,但我甚至不确定这是否与Azure应用服务有关 - 而Azure中的事情变化如此之快以至于我认为我应该问另外,无论如何。

我还看到了this link关于使用web.config转换的问题。也许这是必需的?

This other link似乎表明可以更新web.config,但他们的示例也为我提供了HTTP 500.

我已经在Azure门户中查看了我的应用服务中的配置选项,似乎没有任何内容突然出现在我身上。

1 个答案:

答案 0 :(得分:1)

&gt;&gt;“此其他链接似乎表明可以更新web.config”

是的,我们可以直接更新Web.config文件来更新Web App的配置。您可以通过FTP / WebDeply或Kudu提供的任何其他方式将新版本的配置文件上传到wwwroot文件夹。在wwwroot文件夹中编辑文件的另一种简单方法是使用App Service Editor,您可以使用它来编辑配置文件。

我不能在我身边重现你的问题。以下是我的所作所为。

  1. 使用带有“共享”SKU的Web应用程序计划创建Web应用程序。
  2. 创建2个文件,index.html文件和Web.config文件。 Web.config中的内容与您的内容相同。
  3. 使用FTP将这些文件上传到我的网络应用程序的wwwroot文件夹。
  4. 打开网络浏览器并输入类似“http:// xxx.azurewebsites.net/test”的网址。 Web服务器将返回index.html的内容。它证明重写工作正常。
  5. &gt;&gt;“但他们的示例也为我提供了HTTP 500。”

    首先,请确认重写是否正常。我建议您直接查看index.html页面并检查错误代码(500)是否来自index.html页面。

    有时我们为重写规则提供了错误的语法,它将返回500(URL重写模块错误)。您是否为Web应用程序启用了详细错误记录和Web服务器日志记录。如果是,您可以查看详细错误消息以获取更多有用信息。有关如何启用和查看诊断日志记录,以下链接供您参考。

    Enable diagnostics logging for web apps in Azure App Service