INTEGRITY Документация

Создание пользовательских правил ошибок

В панели управления

Создайте custom error rule

  1. В панели управления Cloudflare перейдите в раздел Rules Обзор страницу.

    Перейдите в Обзор ↗
  2. Выберите Создать правило > Custom Error Rule.

  3. Введите описательное название правила в Название правила.

  4. В разделе Если входящие запросы соответствуют, выберите один из следующих вариантов:

    • Настраиваемое выражение фильтра: Правило будет применяться только к трафику, соответствующему пользовательскому выражению. Определите выражение правила чтобы настроить, какие запросы следует переписывать. Для определения пользовательского выражения используйте Expression Builder или Expression Editor. Подробнее см. в Редактирование выражений в дашборде.

    • Все входящие запросы: Правило будет применяться ко всем ответам с 400 код состояния или выше, за исключением действий блокировки и challenge, применяемых продуктами безопасности Cloudflare.

  5. В Отправка пользовательского ответа об ошибке, выберите тип ответа (либо Пользовательский ресурс ошибки или один из доступных встроенных ответов).

    Если вы выберете Пользовательский ресурс ошибки, выберите существующий пользовательский ресурс ошибки в Ресурс, или выберите Создать новый ресурс к создать новый ресурс пользовательской ошибки.

    Если вы выберете Ответ JSON, HTML-ответ, Текстовый ответ, или XML-ответ, введите пользовательский ответ об ошибке, который нужно отправлять посетителям сайта, в Ответ JSON, HTML-ответ, Текстовый ответ, или XML-ответ, соответственно. Ответ может включать токены ошибок которые Cloudflare заменит реальными значениями перед отправкой ответа посетителю. Максимальный размер ответа составляет 10 KB.

  6. (Необязательно) В Код ответа, введите код состояния HTTP ответа (целое число от 400 и 999). Если указано, это значение переопределит текущий код состояния ответа.

  7. (Необязательно) В разделе Расположите на, укажите, куда поместить правило в списке правил: первым, последним или в произвольную позицию (после определённого правила).

  8. Чтобы сохранить и развернуть правило, выберите Развернуть. Если вы ещё не готовы развернуть правило, выберите Save as Draft.

Создайте custom error asset

  1. В Создайте Custom Error Asset боковой панели введите имя ресурса в Имя ресурса.
  2. (Необязательно) Введите описание ресурса в Описание.
  3. В URL, введите URL страницы, которую нужно загрузить и сохранить в глобальной сети Cloudflare. Cloudflare загрузит все ресурсы страницы и сохранит минифицированную версию страницы, которую можно использовать в одном или нескольких правилах пользовательских ошибок.
  4. Выберите Save.

Чтобы просмотреть существующие пользовательские ресурсы ошибок, перейдите в Правила > Настройки > Custom Error Assets на вкладке.

Через API

Чтобы настроить пользовательское правило ошибок через API:

  1. (Необязательно) Создайте custom error asset на основе указанного вами URL.
  2. Создайте custom error rule в http_custom_errors фазу, используя Rulesets API.

Создайте custom error asset

Следующие POST запрос создаёт новый ресурс пользовательской ошибки в зоне на основе указанного URL:

curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_pages/assets" \
--header "Authorization: Bearer <API_TOKEN>" \
--json '{
  "name": "500_error_template",
  "description": "Standard 5xx error template page",
  "url": "https://example.com/errors/500_template.html"
}'
{
	"result": {
		"name": "500_error_template",
		"description": "Standard 5xx error template page",
		"url": "https://example.com/errors/500_template.html",
		"last_updated": "2025-02-10T11:36:07.810215Z",
		"size_bytes": 2048
	},
	"success": true
}

Создайте custom error rule

При создании пользовательского правила ошибки через API убедитесь, что вы:

Первое правило в http_custom_errors набор правил фазы, который совпадает, будет применён. Другие правила в этом наборе правил проверяться или применяться не будут. Кроме того, правила пользовательских ошибок, определённые на уровне зоны, имеют приоритет над правилами, определёнными на уровне аккаунта.

Общая процедура

Чтобы создать правило настраиваемых ошибок для указанной зоны через API, выполните следующие действия:

  1. Используйте Список наборов правил зоны операцию, чтобы проверить, существует ли уже набор правил для http_custom_errors фаза на уровне зоны.

  2. Если набор правил для этой фазы не существует, создайте его с помощью Обновление набора правил точки входа зоны операцию, которая позволяет создать набор правил, если он ещё не существует, и обновить все правила в наборе. Создайте набор правил в http_custom_errors фазы.

    Если ruleset для этой фазы уже существует, используйте Обновление набора правил точки входа зоны операцию, чтобы заменить все правила в наборе правил, либо Добавление правила в набор правил операцию, чтобы добавить правило к существующим правилам набора правил.

Чтобы создать пользовательское правило ошибок на уровне аккаунта, используйте соответствующие конечные точки API уровня аккаунта.

Пример

В этом примере настраивается пользовательское правило ошибки, которое возвращает ранее созданный пользовательский ресурс страницы ошибки с именем 500_error_template для ответов с 500 код статуса HTTP.

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
Обновление набора правил точки входа зоны
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_custom_errors/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"ref": "serve_500_template",
						"action": "serve_error",
						"action_parameters": {
								"asset_name": "500_error_template",
								"content_type": "text/html"
						},
						"expression": "http.response.code eq 500",
						"enabled": true
				}
		]
	}'

Используйте ref поле, чтобы идентификаторы правил оставались стабильными при обновлениях в Terraform. Добавление этого поля не позволяет Terraform пересоздавать правило при изменениях. Дополнительную информацию см. в Устранение неполадок в документации Terraform.

Это PUT запрос, соответствующий Обновление набора правил точки входа зоны заменяет все существующие правила в http_custom_errors набор правил точки входа фазы.

Необходимые разрешения API-токена

Токен API, используемый в запросах API для управления Custom Error Rules и Custom Error Assets, должен иметь как минимум следующее разрешение: