mirror of https://github.com/hashicorp/consul
58 lines
2.4 KiB
Markdown
58 lines
2.4 KiB
Markdown
---
|
||
layout: docs
|
||
page_title: Reroute HTTP Requests
|
||
description: >-
|
||
Learn how to configure Consul API Gateway to reroute HTTP requests to a specific path.
|
||
---
|
||
|
||
# Reroute HTTP Requests
|
||
|
||
This topic describes how to configure Consul API Gateway to reroute HTTP requests.
|
||
|
||
## Requirements
|
||
|
||
1. Verify that the [requirements](/consul/docs/api-gateway/tech-specs) have been met.
|
||
1. Verify that the Consul API Gateway CRDs and controller have been installed and applied. Refer to [Installation](/consul/docs/connect/gateways/api-gateway/deploy/install-k8s) for details.
|
||
|
||
## Configuration
|
||
|
||
Specify the following fields in your `Route` configuration. Refer to the [Route configuration reference](/consul/docs/connect/gateways/api-gateway/configuration/routes) for details about the parameters.
|
||
|
||
- [`rules.filters.type`](/consul/docs/connect/gateways/api-gateway/configuration/routes#rules-filters-type): Set this parameter to `URLRewrite` to instruct Consul API Gateway to rewrite the URL when specific conditions are met.
|
||
- [`rules.filters.urlRewrite`](/consul/docs/connect/gateways/api-gateway/configuration/routes#rules-filters-urlrewrite): Specify the `path` configuration.
|
||
- [`rules.filters.urlRewrite.path`](/consul/docs/connect/gateways/api-gateway/configuration/routes#rules-filters-urlrewrite-path): Contains the paths that incoming requests should be rewritten to based on the match conditions.
|
||
|
||
To configure the route to accept paths with or without a trailing slash, you must make two separate routes to handle each case.
|
||
|
||
### Example
|
||
|
||
In the following example, requests to` /incoming-request-prefix/` are forwarded to the `backendRef` as `/prefix-backend-receives/`. As a result, requests to `/incoming-request-prefix/request-path` are received by `backendRef` as `/prefix-backend-receives/request-path`.
|
||
|
||
<CodeBlockConfig filename="route.yaml">
|
||
|
||
```yaml hideClipboard
|
||
apiVersion: gateway.networking.k8s.io/v1beta1
|
||
kind: HTTPRoute
|
||
metadata:
|
||
name: example-route
|
||
##...
|
||
spec:
|
||
parentRefs:
|
||
- group: gateway.networking.k8s.io
|
||
kind: Gateway
|
||
name: api-gateway
|
||
rules:
|
||
- backendRefs:
|
||
. . .
|
||
filters:
|
||
- type: URLRewrite
|
||
urlRewrite:
|
||
path:
|
||
replacePrefixMatch: /prefix-backend-receives/
|
||
type: ReplacePrefixMatch
|
||
matches:
|
||
- path:
|
||
type: PathPrefix
|
||
value: /incoming–request-prefix/
|
||
```
|
||
</CodeBlockConfig> |