# RedirectOptions

Options for `ListenerAction.redirect()`.

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".

- Source: [`aws-elasticloadbalancingv2/lib/alb/application-listener-action.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-elasticloadbalancingv2/lib/alb/application-listener-action.ts#L302)

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_elasticloadbalancingv2 as elbv2 } from 'aws-cdk-lib';
const redirectOptions: elbv2.RedirectOptions = {
  host: 'host',
  path: 'path',
  permanent: false,
  port: 'port',
  protocol: 'protocol',
  query: 'query',
};
```

## Properties

- `host`: string — The hostname.

  **Default:** No change

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

- `path`: string — The absolute path, starting with the leading "/".

  **Default:** No change

  This component is not percent-encoded. The path can contain #{host}, #{path}, and #{port}.

- `permanent`: boolean = false — The HTTP redirect code.

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

- `port`: string — The port.

  **Default:** No change

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

- `protocol`: string — The protocol.

  **Default:** No change

  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.

- `query`: string — The query parameters, URL-encoded when necessary, but not percent-encoded.

  **Default:** No change

  Do not include the leading "?", as it is automatically added. You can specify any of the reserved keywords.
