spring云网关路由url模式配置

0dxa2lsx  于 2021-07-22  发布在  Java
关注(0)|答案(1)|浏览(349)

我已经用eureka发现服务实现了springcloudgateway,一切都很好,但是我看到了一些我在编写url时不知道如何处理的事情,如果我没有在url的末尾放一个/,gateway会直接使用它的实际url(在eureka注册)重定向到应用程序。
例如:
https://example.com/bar 重定向到应用程序url(http://example.app.url.com:8010/巴/)
https://example.com/bar/ 按预期工作(它维护实际的网关url)
是否有避免第一种情况的配置?
我的配置如下:

spring:
  application:
    name: gateway-service
  cloud:
    gateway:
      routes:
        - id: bar-service
          uri: lb://BAR-SERVICE/
          predicates:
            - Path=/bar/**
        - id: other-service
          uri: lb://OTHER-SERVICE/
          predicates:
            - Path=/OTHER/**

其他信息:
我在每个应用程序中都有一个控制器,以“/”作为入口点(主页)
如果需要,我可以使用java配置
任何建议都将不胜感激!干杯!

icnyk63a

icnyk63a1#

您应该在网关配置中使用rewritepath。以下是示例,希望对您有所帮助。

spring:
  application:
    name: gateway-service
  cloud:
    gateway:
      routes:
        - id: bar-service
          uri: lb://BAR-SERVICE/
          predicates:
            - Path=/bar/**
          filters:
            - RewritePath=/bar(?<segment>.*), /$\{segment}

相关问题