spring-boot - Spring Cloud Gateway 在 url 请求的末尾看不到斜杠
问题描述
我有以下配置:
gateway:
discovery:
locator:
enabled: true
predicates:
- name: Path
args:
pattern: "'/api/'+serviceId.toLowerCase()+'/**'"
filters:
- name: RewritePath
args:
regexp: "'/api/' + serviceId.toLowerCase() + '/(?<remaining>.*)'"
replacement: "'/${remaining}'"
如果我发送请求...api/serviceName/
- OK
但是如果我发送一个请求...api/serviceName
- 它返回 404 NOT FOUND
如何更改属性以便可以使用末尾没有斜杠的 URL?
谢谢!
解决方案
我相信你在谓词正则表达式中强制使用斜杠:
pattern: "'/api/'+serviceId.toLowerCase()+'/**'"
尝试使其成为有条件的(0 或 1 个 "/**" 实例):
pattern: "'/api/'+serviceId.toLowerCase()+'(/**)?'"
推荐阅读
- c# - C# Dapper 查询中的多个实体:参数过多
- c# - 如何配置自包含的单文件程序?
- python - 用 sqlalchemy 覆盖 postgresql onupdate
- c# - 可以在另一个属性的 setter 中设置不同属性的值吗?
- go - 使用 OpenSSL 的 EVP API 的配置文件
- x86 - x64中完全不使用分段吗?
- bash - 下载前让 curl 等待
- skorch - Skorch:帮助为多个输出构建分类器
- spring-boot - OppenId 通过 Spring Security OAuth2 连接配置
- php - Laravel 5 如何仅获取数据库中特定用户的一行最新数据