Réécriture d'URL

Chute peut réécrire l'URL de la requête selon différentes méthodes, ou rejeter certaines requêtes en fonction de leur URL.

Une seule règle peut être appliquée à une même requête.

Remarque : une requête HTTP en clair n'est traitée que lorsqu'elle parvient à Chute par son proxy HTTP ; le HTTP en clair qui arrive par l'interface TUN est transmis tel quel. Chute Android fait passer tout le trafic par TUN, sauf si Proxy HTTP système est activé dans les Réglages, ce qui fournit aux apps le proxy HTTP de Chute (Android 10 et ultérieur ; désactivé par défaut). Une requête HTTPS n'est traitée que lorsque son hôte est déchiffré par MitM.

Exemple :

[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

La règle de réécriture comporte 3 parties : l'expression régulière, le remplacement et le type. Les parties sont séparées par des blancs, et le premier mot qui commence par #, ; ou // ouvre un commentaire qui s'étend jusqu'à la fin de la ligne ; cette section ne reconnaît pas les guillemets. Voir Commentaire.

Pour les types de rejet (reject, reject-200, reject-img, reject-dict, reject-array, reject-tinygif), une forme abrégée à deux jetons <pattern> reject sans l'espace réservé _ est également acceptée. La forme abrégée accepte aussi reject-drop et reject-no-drop de Shadowrocket, tous deux traités comme reject, ainsi que reject-video, traité comme reject-200 ; ces trois-là ne sont acceptés que dans la forme abrégée, et non comme type d'une ligne à trois jetons. Une ligne à deux jetons dont le second n'est pas un mot-clé de rejet est lue comme une réécriture en mode header vers cette URL : ^http://a\.com http://b.com équivaut à ^http://a\.com http://b.com header. Attention à l'orthographe des mots-clés de rejet — reject200 n'en est pas un, si bien que ^http://ad\.com reject200 est lu comme une réécriture en mode header vers reject200. Ce remplacement n'étant ni une URL absolue ni un chemin absolu, la réécriture est refusée au moment de la requête, avec un avertissement dans le journal, et la requête part inchangée : ni rejetée, ni réécrite.

Les réponses que Chute génère lui-même — la Réponse simulée, la response d'un script, ainsi que les réponses et la page d'erreur de la Réécriture d'URL et des politiques REJECT — suivent HTTP : la réponse à une requête HEAD se limite à l'en-tête, avec le Content-Length qu'obtiendrait un GET, et une réponse de statut 204, 205 ou 304 ne porte ni corps ni Content-Length.

Mode en-tête

Chute modifie l'en-tête de la requête et redirige celle-ci vers un autre hôte si nécessaire. Le client ne remarquera pas cette réécriture. (Ce mode correspond au « Map Remote » de Surge.)

Le champ « Host » de l'en-tête de requête est modifié pour correspondre à la nouvelle URL.

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

Le remplacement peut aussi prendre une forme limitée au chemin, comme /new/path. Dans ce cas, seule la ligne de requête est réécrite vers le nouveau chemin, et la requête reste envoyée au même hôte. Seul un remplacement qui commence par un schéma suivi de :// est lu comme une URL : un chemin dont la chaîne de requête en contient une, comme /go?to=http://example.com/, reste donc un remplacement limité au chemin.

Lorsque la destination ne peut pas être réécrite sur place — par exemple lors de la réécriture d'une requête HTTP simple vers une URL https://, d'une requête HTTPS (avec MitM activé) vers une origine différente, ou lorsqu'une requête suivante sur une connexion HTTP simple keep-alive déjà établie correspond à une règle qui nomme un autre hôte — Chute bascule automatiquement sur une réponse 307 de redirection vers la nouvelle URL, au lieu d'une réécriture d'en-tête transparente.

Mode 302

Chute renvoie simplement une réponse de redirection 302. Les requêtes HTTPS peuvent être redirigées si le MitM est activé pour le nom d'hôte.

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

Mode 307

Chute renvoie simplement une réponse de redirection temporaire 307. Les requêtes HTTPS peuvent être redirigées si le MitM est activé pour le nom d'hôte.

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

Mode rejet

Rejette la requête si le motif correspond. Le paramètre de remplacement est ignoré. Renvoie une réponse HTTP 503. Les requêtes HTTPS seront rejetées si le MitM est activé pour le nom d'hôte.

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

Mode reject-200

Rejette la requête avec un statut HTTP 200 OK et un corps de longueur nulle. Utile pour bloquer silencieusement les requêtes de suivi sans déclencher de gestion d'erreur.

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

Mode reject-img

Rejette la requête en renvoyant une image GIF blanche de 1x1 (HTTP 200 OK). Utile pour bloquer les images publicitaires sans provoquer d'espaces réservés d'image cassée.

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

Mode reject-dict

Rejette la requête en renvoyant un objet JSON vide {} (HTTP 200 OK). Utile pour bloquer les appels d'API qui attendent une réponse JSON.

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

Mode reject-array

Rejette la requête en renvoyant un tableau JSON vide [] (HTTP 200 OK). Utile pour bloquer les appels d'API qui attendent une liste.

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

Mode reject-tinygif

Rejette la requête en renvoyant une image GIF 1×1 (HTTP 200 OK) — l'orthographe Surge de la même réponse que reject-img.

[URL Rewrite]
^http://ad\.com/beacon _ reject-tinygif
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-30 15:11:19

results matching ""

    No results matching ""