如何使 yarp 匹配路径不区分大小写?

Posted

技术标签:

【中文标题】如何使 yarp 匹配路径不区分大小写?【英文标题】:How can I make yarp match path case insensitive? 【发布时间】:2021-04-29 05:12:30 【问题描述】:

我的路线是

"Routes": [

    "RouteId": "routegreen",
    "ClusterId": "clustergreen",
    "Match": 
        "Path": "/api/myendpoint"
    

去往/api/MyEndpoint 的请求不匹配。是否可以使其不区分大小写?

【问题讨论】:

【参考方案1】:

你不能。这些不是 Windows 文件名 - 路由中包含的 URL 始终区分大小写。您别无选择,只能在路由地址或您的方法名称中重命名以完全匹配大小写。

【讨论】:

我完全明白 url 应该区分大小写,但配置可能有一个不区分大小写匹配的选项。我实际上在 yarp (matcher.IsCaseSensitive) 的源代码中找到了一些东西,只需要为它找到正确的语法 我认为它不存在。在 .NET ASP 中有(曾经)不区分大小写的路由,但对于 Core,他们已经改变了这一点。实际上不了解 yarp,但它根本不应该存在。路由区分大小写。您必须为 MyEndpoint 明确设置单独的路由案例。 我猜你是正确的匹配器。IsCaseSensitive 实际上是用于匹配标头值

以上是关于如何使 yarp 匹配路径不区分大小写?的主要内容,如果未能解决你的问题,请参考以下文章

Nginx学习笔记04URL匹配规则和实际路径

Nginx重写

JavaScript正则表达式匹配不区分大小写的单词? [复制]

Nginx 实践|location 路径匹配

如何使 Oracle 不区分大小写

Spring数据JPAexistsByField在MySQL中不区分大小写,如何使其区分大小写