HTTP Redirects and Rewrites
HTTP path redirects and rewrites¶
HTTPRoute can be used to redirect clients' request or rewrite the paths sent to the backends using filters.
In this page, we will show how to use the filters to do the redirect or rewrite.
We ignore the configuration of GatewayClass and Gateway, and directly show the configurations of different HTTPRoute resources.
Redirects¶
---
apiVersion: gateway.networking.k8s.io/v1beta1
kind: HTTPRoute
metadata:
name: test-filter-requestredirect
spec:
parentRefs:
- name: gateway
sectionName: http
hostnames:
- gateway.test.automation
rules:
- filters:
- type: RequestRedirect
requestRedirect:
scheme: https
hostname: www.example.com
# path: -> experimental in v0.5.1
# type: ReplaceFullPath
# replaceFullPath: /fake
port: 443
statusCode: 301
backendRefs:
- name: tea
port: 80
In this HTTPRoute configuration, when we access http://gateway.test.automation, the traffic will be redirect to https://www.example.com/:
$ curl 10.250.18.119 -H "Host: gateway.test.automation" -v
* Trying 10.250.18.119:80...
* Connected to 10.250.18.119 (10.250.18.119) port 80 (#0)
> GET / HTTP/1.1
> Host: gateway.test.automation
> User-Agent: curl/7.79.1
> Accept: */*
>
* Mark bundle as not supporting multiuse
* HTTP 1.0, assume close after body
< HTTP/1.0 301 Moved Permanently
< Location: https://www.example.com:443/
< Server: BigIP
* HTTP/1.0 connection set to keep alive!
< Connection: Keep-Alive
< Content-Length: 0
<
* Connection #0 to host 10.250.18.119 left intact
As shown here, the virtual responses < HTTP/1.0 301 Moved Permanently.
Rewrites¶
Experimental in gateway api v0.5.1, will be supported in future.
# ---
# apiVersion: gateway.networking.k8s.io/v1beta1
# kind: HTTPRoute
# metadata:
# name: test-filter-urlrewrite
# spec:
# parentRefs:
# - name: gateway
# sectionName: http
# hostnames:
# - "cafe.example.com"
# rules:
# - filters:
# - type: URLRewrite
# urlRewrite:
# hostname: www.example.com
# path:
# type: ReplaceFullPath
# replaceFullPath: /fake
# backendRefs:
# - name: tea
# port: 80
Last update: February 6, 2023 16:16:03
Created: February 6, 2023 16:16:03
Created: February 6, 2023 16:16:03