---
title: Redirects and rewrites
description: Configure redirects and rewrites in Thunder Console
---
The terms "redirect" and "rewrite" refer to different ways of handling HTTP requests, and they serve distinct purposes in web development.
## CloudFront Lambda@Edge
For patterns that use CloudFront distributions (such as [CDK-SPA](/docs/patterns/s3-cloudfront)), redirects and rewrites are implemented using [**AWS Lambda@Edge**](https://docs.aws.amazon.com/lambda/latest/dg/lambda-edge.html) functions that execute at [CloudFront](https://docs.aws.amazon.com/cloudfront/) edge locations. This provides low-latency routing decisions across a global network of edge servers, allowing you to:
- Process requests without additional server round-trips
- Implement intelligent routing based on request properties
- Serve dynamic content patterns with minimal latency
- Scale globally without infrastructure management
This feature is available for static site hosting patterns that leverage CloudFront. Other hosting patterns may have different routing capabilities.
## Redirect
A redirect is an HTTP response that instructs the client's browser to make a new request to a different URL. When implemented through Lambda@Edge at CloudFront, redirects happen at edge locations without requiring requests to reach your origin server.
*HTTP Status Codes*: Commonly uses status codes like 301 (Moved Permanently) or 302 (Found/Temporary Redirect). See [HTTP Status Codes](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Redirects.html) in the CloudFront documentation for more details.
*Client-Side Action*: The browser updates the URL in the address bar to the new location specified in the Location header of the response.
Use Cases:
- Moving content to a new URL to avoid a broken link when the address of a page changes.
- To avoid a broken link when a user makes a predictable typo in an address.
SEO Impact:
A 301 redirect passes most of the SEO value from the old URL to the new one, while a 302 redirect does not.
## Rewrite
A rewrite (also called a 200 Redirect) modifies the URL path internally on the server without changing the URL in the client's browser. When implemented through [Lambda@Edge](https://docs.aws.amazon.com/lambda/latest/dg/lambda-edge.html) at CloudFront, rewrites are processed at edge locations, allowing CloudFront to serve the rewritten content without client awareness or additional requests.
*No HTTP Status Code*: Since the rewrite is internal, it doesn't involve sending a new HTTP status code to the client.
*Server-Side Action*: The server processes the request as if it was made to the rewritten URL.
Use Cases:
- Serving a single-page application (SPA) by rewriting all paths to index.html.
- Handling legacy URLs without changing the visible URL structure.
SEO Impact: Since the URL in the browser doesn't change, rewrites don't directly impact SEO.
## Pattern
Configure redirects and rewrites for CloudFront-based deployments using pattern matching. Patterns support static paths, wildcards, and placeholders to handle various URL transformation scenarios.
Using static paths:
| **Source** | **Destination** |
|----------------------------|--------------------------|
| /home | / |
Using wildcards:
| **Source** | **Destination** | **Example Effect** |
|----------------------------------|-------------------------------|----------------------------------------------|
| /guide/* | /blog/* | /guide/path1 → /blog/path1 |
| /cms/* | /* | /cms/path1 → /path1 |
Using placeholders:
| **Source** | **Destination** | **Example Effect** |
|----------------------------|--------------------------|-------------------------------------------|
| /docs/:any | /:any | /docs/introduction → /introduction |
| /blog/posts/:postid | /blog/:postid | /blog/posts/123 → /blog/123 |
| /updates/:year/:month | /changelog/:year/:month | /updates/2023/10 → /changelog/2023/10 |