# Manage redirects

> Learn how to manage redirects from within the Uniform digital experience composition platform.

Source: https://docs.uniform.app/docs/guides/composition/url-management/redirects

As headless architectures have moved beyond the concepts of **pages** and **sitemaps**, site managers still need a way to maintain URLs, and often this task falls to developers. This can cause friction for marketers or other non-technical teams when they restructure websites or launch campaign-based vanity URLs.

Active management ensures valid URLs which are required for good digital experiences, the health of a website, and SEO performance. Once a URL has been published and indexed, site owners lose control of how it's used so ensuring that those URLs don't break is a key task for anyone maintaining a web experience.

Uniform Canvas offers no-code redirect management to support information architecture changes, vanity URLs, and wildcard options.

## Simple redirects in Uniform

A simple Uniform redirect consists of three main data points:

- **Source Url**: This can be a relative path (such as `/products/categories/technology`) or an absolute URL, containing the protocol and domain (such as `https://www.samplesite.com/products/categories`).
- **Target Url**: You can select a [project map](https://docs.uniform.app/docs/guides/project-maps) node to represent a URL. If a base url is defined for your project map, it will be included in the final URL. Otherwise it's considered a relative path.
- [**Status Code**](#status-codes): Indicates whether redirects are permanent, temporary, or represents a special case.

These data points combine to form instructions for how the source URL should resolve.

For ease of authoring, Uniform defaults to showing a simplified view of redirect options. These options are sufficient for an author to create a vanity url redirect for campaigns or to manage project map changes to avoid unexpected 404 errors on your website. A simple redirect will have the following settings:

- **Status Code**: 301, permanent redirect.
- **Must Match Domain**: false, protocol and domain are ignored for incoming requests and only the path is taken into consideration.
- **Retain query string from incoming request**: true, query string parameters from the requested url will be passed along to the target.
- **Preserve Incoming Protocol**: true, target will use the same protocol `http://` as the incoming request.
- **preserve Incoming Domain**: true, target will use the same domain `uniform.app` as the incoming request.
- **Stop Executing Rules After This One**: false, if other redirects beyond the executed one are also valid, it will follow those as well.

If these defaults don't fit your needs, use the [**advanced**](https://docs.uniform.app/docs/guides/composition/url-management/redirects/advanced-redirects) tab to configure your redirect.

## Create a simple redirect

1. In Uniform, navigate to **Experience > Redirects**.
2. Enter the following values:

   | Field | Value |
   | --- | --- |
   | Source | A relative path representing the webpage that has moved from |
   | Target | A project map node for to which the webpage has moved |
3. Click **Save**.
4. The redirect listing is displayed.

> **Create redirects when moving nodes:**
>
> Redirects can also be created automatically when URLs in a project map change.
>
> In some situations a URL change can result in broken links, such as:
>
> - Moving a project map node (and its descendants) to another location in the tree
> - Changing the path segment of a project map node
>
> Uniform can create redirects for the affected nodes if you choose **yes** in the warning message.
>
> ![Optional redirect creation when a node is moved](https://docs.uniform.app/images/guides/composition/redirects/move-nodes-redirects.png)

## Delete a redirect

1. In Uniform, navigate to **Experience > Redirects**.
2. Find the redirect definition you wish to delete.
3. Click the  button and click **Delete**.
4. Click **OK** to delete the redirect.

## Edit a redirect

1. In Uniform, navigate to **Experience > Redirects**.
2. Find the redirect definition you wish to delete.
3. Click the source of the redirect definition.
4. Edit the fields you want to change.
5. Click **Save**.

## Status codes

Redirects are categorized by status code. Different status codes indicate additional information to search engines and other indexers.

- **301**: The requested resource has **permanently moved** and will never be returning to this URL. This will update bookmarks people have added to the new URL.

  - This is the type used for **simple redirects**
- **302**: The requested resource has **temporarily moved** and will likely return to this URL.
- **307**: A **temporary redirect** where you expect the **request type to be something other than a GET request**. For example, posting form data, deleting an asset, or updating an asset.
- **308**: A **permanent redirect** where you expect the **request type to be something other than a GET request**. For example, posting form data, deleting an asset, or updating an asset.
- **404**: The requested resource **doesn't exist**. This could be useful if you want to perform maintenance on a new section of your site without worrying about accidental publishing
- **410**: There was a resource here, but it has been **permanently removed**. This could be useful if you wanted to communicate to users that something existed at one point.
