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.
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
La règle de réécriture comporte 3 parties : l'expression régulière, le remplacement et le type.
Pour les types de rejet (
reject,reject-200,reject-img,reject-dict), une forme abrégée à deux jetons<motif> rejectsans l'espace réservé_est également acceptée.
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.
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://, ou d'une requête HTTPS (avec MitM activé) vers une origine différente — 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