[Документация Yandex Cloud](../../index.md) > [Yandex Cloud CDN](../index.md) > [Концепции](index.md) > Перенаправление запросов

# Перенаправление запросов

Вы можете [настроить перенаправление](../operations/resources/setup-http-rewrite.md) запросов от [CDN-ресурса](resource.md) к источнику, изменив [URI](https://ru.wikipedia.org/wiki/URI) запроса с помощью [правила](#rewrite-rule) `Rewrite`.

Например, с помощью этой опции вы можете перенастроить пути запросов к контенту, если на [источнике](origins.md) оказалась изменена структура файлов и папок. Также перенаправление можно использовать, если при переезде ресурса на новый адрес вы хотите сохранить ранжирование вашего контента в поисковых системах.

Включить перенаправление запросов для CDN-ресурса вы можете с помощью [консоли управления](https://kz.console.yandex.cloud), [CLI](../../cli/cli-ref/cdn/cli-ref/resource/update.md) или [API](../api-ref/Resource/update.md).

Чтобы настроить перенаправление запросов, необходимо задать [правило Rewrite](#rewrite-rule) и указать [флаг](#flag).


## Правило Rewrite {#rewrite-rule}

Правило Rewrite должно содержать две разделенные пробелом директивы:

* **Исходный путь** — часть URI, которую требуется заменить. Задается в виде [регулярного выражения](https://ru.wikipedia.org/wiki/Регулярные_выражения).

    Фрагменты регулярного выражения могут быть обособлены скобками — в этом случае соответствующие таким фрагментам части URI будут доступны в _измененном пути_ в значениях переменных `$1`, `$2`, ... `$9`, где номер переменной соответствует порядковому номеру обособленного фрагмента регулярного выражения в _исходном пути_.

* **Измененный путь** — часть URI, которая должна заменить исходный путь, соответствующий заданному регулярному выражению.

    В измененном пути можно использовать переменные, содержащие фрагменты исходного пути, которые были обособлены в нем с помощью скобок: `$1`, `$2`, ... `$9`.

**Пример правила Rewrite:**

> `/(videos)/(events)/(\d{4}-\d{2}-\d{2})/(.*) /$2/$1/$3-$4`
>
> Данное правило изменит URI запроса следующим образом:
>
> Исходный URI: `https://example.com/videos/events/2024-01-01/new-year.avi`
> Конечный URI: `https://example.com/events/videos/2024-01-01-new-year.avi`

## Флаг {#flag}

Флаги позволяют прекратить дальнейшую обработку директив `Rewrite` или вернуть пользователю `redirect`. Для правил `Rewrite` доступны следующие флаги:

* `break` — завершает обработку текущего набора директив.
* `last` — завершает обработку текущего набора директив и начинает поиск нового CDN-сервера, соответствующего новому URI.
* `redirect` — возвращает пользователю временный `redirect` с кодом `302`. Флаг используется, если заменяющая строка не начинается с `http://`, `https://` или `$scheme`.
* `permanent` — возвращает пользователю постоянный `redirect` с кодом `301`.


## Примеры использования {#examples}

* [Организация сине-зеленого и канареечного развертывания версий веб-сервиса](../tutorials/blue-green-canary-deployment.md)
* [Миграция в Yandex Cloud CDN из стороннего CDN-провайдера](../tutorials/migrate-to-yc-cdn.md)


#### Полезные ссылки {#see-also}

* [Инструкция по включению перенаправления запросов](../operations/resources/setup-http-rewrite.md)