Перезапись URL

Chute может перезаписывать URL запроса различными методами или отклонять определённые запросы по URL.

К одному запросу может быть применено только одно правило.

Внимание: Обычный HTTP-запрос обрабатывается, только если он приходит в Chute через его HTTP-прокси; обычный HTTP, пришедший через интерфейс TUN, пересылается без изменений. Chute Android направляет весь трафик через TUN, если в настройках не включён Системный HTTP-прокси, который предоставляет приложениям HTTP-прокси Chute (Android 10 и новее; по умолчанию выключен). HTTPS-запрос обрабатывается, только если его хост расшифровывается с помощью MitM.

Пример:

[URL Rewrite]
^http://www\.google\.cn http://www.google.com header
^http://amazon\.cn https://z.cn 302
^http://ad\.com/ad\.png _ reject
^http://tracker\.com/event _ reject-200
^http://ad\.com/pixel _ reject-img
^http://api\.example\.com/block _ reject-dict
^http://api\.example\.com/list _ reject-array
^http://ad\.com/beacon _ reject-tinygif

Правило перезаписи состоит из 3 частей: регулярное выражение, замена и тип. Части разделяются пробельными символами, а первое слово, начинающееся с #, ; или //, открывает комментарий до конца строки; кавычек в этом разделе нет. См. Комментарии.

Для типов reject (reject, reject-200, reject-img, reject-dict, reject-array, reject-tinygif) также принимается сокращённая запись из двух токенов <pattern> reject без заполнителя _. Сокращённая запись также принимает reject-drop и reject-no-drop из Shadowrocket — на оба отвечается как на reject, — и reject-video, на который отвечается как на reject-200; эти три принимаются только в сокращённой записи, но не как тип в строке из трёх токенов. Строка из двух токенов, второй из которых не является ключевым словом reject, читается как перезапись в режиме header на этот URL: ^http://a\.com http://b.com — то же, что ^http://a\.com http://b.com header. Следите за написанием ключевых слов reject — reject200 таковым не является, поэтому ^http://ad\.com reject200 читается как перезапись в режиме header на reject200. Такая замена не является ни абсолютным URL, ни абсолютным путём, поэтому во время запроса перезапись отклоняется с предупреждением в журнале, а запрос пересылается без изменений: ни отклонён, ни перезаписан.

Ответы, которые Chute формирует сам, — имитация ответов (Map Local), response скрипта, а также ответы и страница ошибки перезаписи URL и политик REJECT — следуют HTTP: ответ на запрос HEAD — это только заголовок, с тем Content-Length, который получил бы GET, а ответ со статусом 204, 205 или 304 не несёт ни тела, ни Content-Length.

Режим Header

Chute изменит заголовок запроса и при необходимости перенаправит запрос на другой хост. Клиент не заметит этого действия перезаписи. (Этот режим соответствует «Map Remote» в Surge.)

Поле Host в заголовке запроса будет изменено для соответствия новому URL.

[URL Rewrite]
^http://www\.google\.cn http://www.google.com header

Замена также может иметь вид только пути, например /new/path. В этом случае перезаписывается только строка запроса (request line) с новым путём, и запрос по-прежнему отправляется на тот же хост. URL считается только замена, начинающаяся со схемы и ://, поэтому путь, в параметрах запроса (query string) которого есть URL, например /go?to=http://example.com/, остаётся заменой только пути.

Когда назначение нельзя перезаписать на месте — например, при перезаписи обычного HTTP-запроса на URL со схемой https://, при перезаписи HTTPS-запроса (с включённым MitM) на другой источник (origin) или при совпадении последующего запроса в уже установленном обычном HTTP-соединении keep-alive с правилом, называющим другой хост, — Chute автоматически отвечает клиенту перенаправлением 307 на новый URL вместо прозрачной перезаписи заголовков.

Режим 302

Chute просто вернёт ответ с перенаправлением 302. HTTPS-запросы могут быть перенаправлены, если для имени хоста включён MitM.

[URL Rewrite]
^http://amazon\.cn https://z.cn 302

Режим 307

Chute просто вернёт ответ с временным перенаправлением 307. HTTPS-запросы могут быть перенаправлены, если для имени хоста включён MitM.

[URL Rewrite]
^http://amazon\.cn https://z.cn 307

Режим Reject

Отклоняет запрос, если шаблон совпадает. Параметр замены будет проигнорирован. Возвращает ответ HTTP 503. HTTPS-запросы будут отклонены, если для имени хоста включён MitM.

[URL Rewrite]
^http://ad\.com/ad\.png _ reject

Режим Reject-200

Отклоняет запрос со статусом HTTP 200 OK и телом нулевой длины. Полезно для тихой блокировки запросов отслеживания без вызова обработки ошибок.

[URL Rewrite]
^http://tracker\.com/event _ reject-200

Режим Reject-Img

Отклоняет запрос, возвращая белое GIF-изображение 1x1 (HTTP 200 OK). Полезно для блокировки рекламных изображений без значков «битого» изображения.

[URL Rewrite]
^http://ad\.com/pixel _ reject-img

Режим Reject-Dict

Отклоняет запрос, возвращая пустой JSON-объект {} (HTTP 200 OK). Полезно для блокировки вызовов API, ожидающих ответ в формате JSON.

[URL Rewrite]
^http://api\.example\.com/block _ reject-dict

Режим Reject-Array

Отклоняет запрос, возвращая пустой JSON-массив [] (HTTP 200 OK). Полезно для блокировки вызовов API, ожидающих список.

[URL Rewrite]
^http://api\.example\.com/list _ reject-array

Режим Reject-TinyGIF

Отклоняет запрос, возвращая изображение GIF 1×1 (HTTP 200 OK), — так в Surge называется тот же ответ, что и reject-img.

[URL Rewrite]
^http://ad\.com/beacon _ reject-tinygif
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-29 21:57:05

Эта страница — перевод английской версии. При расхождениях приоритет имеет английская версия.

results matching ""

    No results matching ""