AWS::ElasticLoadBalancingV2::ListenerRule RedirectConfig - Amazon CloudFormation
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

AWS::ElasticLoadBalancingV2::ListenerRule RedirectConfig

Information about a redirect action.

A URI consists of the following components: protocol://hostname:port/path?query. You must modify at least one of the following components to avoid a redirect loop: protocol, hostname, port, or path. Any components that you do not modify retain their original values.

You can reuse URI components using the following reserved keywords:

  • #{protocol}

  • #{host}

  • #{port}

  • #{path} (the leading "/" is removed)

  • #{query}

For example, you can change the path to "/new/#{path}", the hostname to "example.#{host}", or the query to "#{query}&value=xyz".

Syntax

To declare this entity in your Amazon CloudFormation template, use the following syntax:

JSON

{ "Host" : String, "Path" : String, "Port" : String, "Protocol" : String, "Query" : String, "StatusCode" : String }

YAML

Host: String Path: String Port: String Protocol: String Query: String StatusCode: String

Properties

Host

The hostname. This component is not percent-encoded. The hostname can contain #{host}.

Required: No

Type: String

Minimum: 1

Maximum: 128

Update requires: No interruption

Path

The absolute path, starting with the leading "/". This component is not percent-encoded. The path can contain #{host}, #{path}, and #{port}.

Required: No

Type: String

Minimum: 1

Maximum: 128

Update requires: No interruption

Port

The port. You can specify a value from 1 to 65535 or #{port}.

Required: No

Type: String

Update requires: No interruption

Protocol

The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP.

Required: No

Type: String

Pattern: ^(HTTPS?|#\{protocol\})$

Update requires: No interruption

Query

The query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading "?", as it is automatically added. You can specify any of the reserved keywords.

Required: No

Type: String

Minimum: 0

Maximum: 128

Update requires: No interruption

StatusCode

The HTTP redirect code. The redirect is either permanent (HTTP 301) or temporary (HTTP 302).

Required: Yes

Type: String

Allowed values: HTTP_301 | HTTP_302

Update requires: No interruption

Examples

This example creates a listener rule with an action that redirects HTTPS requests on port 443. At least one of the following components must be modified (to avoid a redirect loop): protocol, hostname, port, or path. Components that are not modified retain their original values.

JSON

"HTTPSlistenerRule": { "Type": "AWS::ElasticLoadBalancingV2::ListenerRule", "Properties": { "Actions": [ { "Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": 443, "Host": "#{host}", "Path": "/#{path}", "Query": "#{query}", "StatusCode": "HTTP_301" } } ], "Conditions": [ { "Field" : "path-pattern", "Values" : ["/path"] } ], "ListenerArn": { "Ref": "myHTTPListener" }, "Priority": "1" } }