This is the new Amazon CloudFormation Template Reference Guide. Please update your bookmarks and links. For help getting started with CloudFormation, see the Amazon CloudFormation User Guide.
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
}
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 can't 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. Use this rule with an HTTP listener. 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.
YAML
myHTTPSlistenerRule: 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: '10'
JSON
{ "myHTTPSlistenerRule": { "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": "10" } } }