首页 > 解决方案 > 如何为 Azure 函数代理自定义 IIS 404 页面?

问题描述

我将以下代理配置为基本上捕获所有请求并将它们重定向到我的后端:

{
    "$schema": "http://json.schemastore.org/proxies",
    "proxies": {
        "Proxy1": {
            "matchCondition": {
                "route": "/{*url}"
            },
            "backendUri": "https://mybackend.com/{url}",
            "debug": false
        }
    }
}

如果 {url} 路径不存在,这可以很好地显示我在 mybackend.com 上配置的自定义 404 页面。

例如:将按预期https://proxy1.com/bad-path显示使用我的后端 404 页面。https://mybackend.com/bad-path

但是,我发现了一个边缘情况(也许这是一个错误?),它允许路径无法正确重定向。如果添加%20到路径的末尾,它会中断代理路径检测,而是显示来自代理本身的 IIS 404 页面。例如:

https://proxy1.com/bad-path%20

结果是:

在此处输入图像描述

这在我们最近执行的服务器审核期间引起了问题。我们不能像这样显示原始 IIS 错误页面。

我该如何 1) 修复此代理问题,以便添加%20到路径的末尾仍然代理到我的后端,我在其中显示我的自定义 404,或 2) 自定义此原始 IIS 错误页面,使其不是显示的标准 IIS 页面在上面的屏幕截图中?

标签: azureazure-functions

解决方案


推荐阅读