springcloud getway 断言规则和404的原因

1: 普通断言

      routes:
        - id: host_route
          uri: https://www.baidu.com/
          predicates:
            - Path=/data/aa

当你搜索www.localhost:8025/data/aa时,会重定向到www.baidu.com/data/aa,结果404

springcloud getway 断言规则和404的原因_第1张图片

 如果加入filters

springcloud getway 断言规则和404的原因_第2张图片

 StripPrefix=1,会重定向到www.baidu.com/aa,结果404

StripPrefix=2,会重定向到www.baidu.com/,结果正确

springcloud getway 断言规则和404的原因_第3张图片springcloud getway 断言规则和404的原因_第4张图片

 2:通过RewritePath,官方介绍

springcloud getway 断言规则和404的原因_第5张图片

配置

springcloud getway 断言规则和404的原因_第6张图片

如果localhost:8025/api,会重定向到www.baidu.com/

springcloud getway 断言规则和404的原因_第7张图片

 但是localhost:8025/api/aa,会重定向到www.baidu.com/aa,导致404

springcloud getway 断言规则和404的原因_第8张图片

 所以要根据实际情况,首先判断你的目的接口是否存在,比如百度www.baidu.com/aa这种写法不存在,就需要更改规则

springcloud getway 断言规则和404的原因_第9张图片

springcloud getway 断言规则和404的原因_第10张图片

3: 如果要通过服务名称重定向,必须加入依赖

springcloud getway 断言规则和404的原因_第11张图片

 

        - id: petlove-shop_route
          uri: lb://petlove-shop
          predicates:
            - Path=/product/**
          filters:
            - RewritePath=/product/?(?.*), /petlove-shop/$\{segment}

localhost:88/product/category/listWithTree  ------》 localhost:8125/petlove-shop/category/listWithTree

springcloud getway 断言规则和404的原因_第12张图片

 

你可能感兴趣的:(spring,cloud,spring,后端)