# Routing & Controllers

Learn about Umbraco’s routing pipeline and the different types of controllers used in Umbraco, how they work, and what they’re used for.

## [Custom Controllers (hijacking routes)](https://docs.umbraco.com/umbraco-cms/reference/routing/custom-controllers)

Create custom controllers to override Umbraco’s default rendering behavior, a technique known as “hijacking routes.”

## [Custom Routes](https://docs.umbraco.com/umbraco-cms/reference/routing/custom-routes)

Define your own MVC routes in your Umbraco application.

## [Custom Middleware](https://docs.umbraco.com/umbraco-cms/reference/routing/custom-middleware)

Learn how to add custom middleware to Umbraco’s ASP.NET Core pipeline.

## [URL Rewrites in Umbraco](https://docs.umbraco.com/umbraco-cms/reference/routing/iisrewriterules)

Explains how to configure IIS rewrite rules for your Umbraco site.

## [Special Property Type aliases for routing](https://docs.umbraco.com/umbraco-cms/reference/routing/routing-properties)

Describes the reserved property type aliases that influence Umbraco’s routing behavior, such as URL aliases and redirects.

## [URL Redirect Management](https://docs.umbraco.com/umbraco-cms/reference/routing/url-tracking)

Understand how Umbraco automatically creates redirects when content is moved or renamed.

## [Routing in Umbraco](https://docs.umbraco.com/umbraco-cms/reference/routing/request-pipeline)

Explains how Umbraco builds and resolves URLs, maps them back to content items, and determines how requests are rendered.

## [Surface Controllers](https://docs.umbraco.com/umbraco-cms/reference/routing/surface-controllers)

Learn what Surface Controllers are and how to use them to handle form submissions or render partial views.

## [Umbraco API Controllers](https://docs.umbraco.com/umbraco-cms/reference/routing/umbraco-api-controllers)

Describes how to create and use Umbraco API Controllers to expose custom Web API endpoints from your Umbraco application.
