Header Rewrite

Chute สามารถเขียนส่วนหัวของคำขอและการตอบกลับใหม่ก่อนที่จะถูกส่งต่อไปยังเซิร์ฟเวอร์หรือไคลเอนต์

สามารถใช้กฎหลายตัวกับหนึ่งคำขอ

หมายเหตุ: คำขอ HTTP ธรรมดาจะถูกประมวลผลก็ต่อเมื่อเข้ามาถึง Chute ผ่านพร็อกซี HTTP ของ Chute เท่านั้น ส่วน HTTP ธรรมดาที่เข้ามาทางอินเทอร์เฟซ TUN จะถูกส่งต่อไปโดยไม่มีการแก้ไขใด ๆ Chute Android ส่งทราฟฟิกทั้งหมดผ่าน TUN เว้นแต่จะเปิด พร็อกซี HTTP ของระบบ ในการตั้งค่า ซึ่งจะมอบพร็อกซี HTTP ของ Chute ให้แอปต่าง ๆ ใช้ (Android 10 ขึ้นไป และปิดอยู่โดยค่าเริ่มต้น) คำขอ HTTPS จะถูกประมวลผลก็ต่อเมื่อโฮสต์ของคำขอถูกถอดรหัสด้วย MitM เท่านั้น

ตัวอย่าง:

[Header Rewrite]
^http://example\.com.* header-add DNT 1
^http://example\.com.* header-del Cookie
^http://example\.com.* header-replace User-Agent Unknown
^http://example\.com.* header-response-add X-Server rack3
^http://example\.com.* header-response-del X-Powered-By
^http://example\.com.* header-response-replace Server nginx

กฎการเขียนใหม่ประกอบด้วย 4 ส่วน: นิพจน์ปกติ URL, ประเภทการกระทำ, ฟิลด์ส่วนหัว และค่า ที่นี่มีเพียง // ที่อยู่ต้นบรรทัดหรือหลังช่องว่าง นอกเครื่องหมายคำพูดคู่ เท่านั้นที่จะเปิดหมายเหตุ ส่วน # และ ; ไม่เคยเปิดหมายเหตุ ดังนั้น header-add X-Color #ff0000 จึงยังคงค่าไว้ ดูหมายเหตุ

หมายเหตุ: นิพจน์ปกติ URL จะจับคู่ที่ตำแหน่งใดก็ได้ใน URL คำขอแบบเต็ม และในพาธเพียงอย่างเดียวด้วย เช่นเดียวกับ URL Rewrite: ^https://example\.com ครอบคลุมทุกพาธและ query string ของโฮสต์นั้นอยู่แล้ว จึงไม่ต้องลงท้ายด้วย .* และ ^/api จะจับคู่ทุกคำขอที่พาธขึ้นต้นด้วย /api URL แบบเต็มของคำขอที่ถูกถอดรหัสจะขึ้นต้นด้วย https:// ดังนั้นรูปแบบ ^http:// จะไม่มีวันจับคู่คำขอเช่นนั้น รูปแบบจะคงตัวพิมพ์เล็กใหญ่ไว้ ดังนั้น \S, \D, \W และ \B จะมีความหมายตามที่เขียน ส่วนการจับคู่เองไม่สนใจตัวพิมพ์เล็กใหญ่

ส่วนหัวคำขอ vs ส่วนหัวการตอบกลับ

การกระทำที่มีคำนำหน้า header- จะใช้กับส่วนหัวคำขอ (จากไคลเอนต์ไปยังเซิร์ฟเวอร์) การกระทำที่มีคำนำหน้า header-response- จะใช้กับส่วนหัวการตอบกลับ (จากเซิร์ฟเวอร์ไปยังไคลเอนต์)

นอกจากนี้ยังรองรับคำนำหน้าระบุทิศทางแบบ Surge คือ http-request / http-response ที่วางไว้ก่อนนิพจน์ปกติ URL เช่น http-request ^http://example\.com.* header-replace Accept-Language en-us

header-add

กำหนดค่าให้ฟิลด์ส่วนหัวในส่วนหัวคำขอตามค่าที่ระบุ หากฟิลด์ส่วนหัวมีอยู่แล้ว จะถูกเขียนทับ ฟิลด์ที่มีหลายบรรทัดจะเหลือเพียงบรรทัดใหม่นี้บรรทัดเดียว

ตัวอย่าง:

[Header Rewrite]
^http://example\.com.* header-add DNT 1

ก่อน:
GET /index.html HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Accept-Language: en-us
Accept-Encoding: gzip, deflate

หลัง:
GET /index.html HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Accept-Language: en-us
Accept-Encoding: gzip, deflate
DNT: 1

header-del

ลบฟิลด์ส่วนหัวออกจากส่วนหัวคำขอ หากมีหลายบรรทัดจะลบทุกบรรทัด

ตัวอย่าง:

[Header Rewrite]
^http://example\.com.* header-del DNT

ก่อน:
GET /index.html HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Accept-Language: en-us
Accept-Encoding: gzip, deflate
DNT: 1

หลัง:
GET /index.html HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Accept-Language: en-us
Accept-Encoding: gzip, deflate

header-replace

แทนที่ค่าส่วนหัวในส่วนหัวคำขอ หากฟิลด์ส่วนหัวไม่มีอยู่ จะไม่มีอะไรเกิดขึ้น ฟิลด์ที่มีหลายบรรทัดจะเหลือบรรทัดเดียวที่มีค่าใหม่

ตัวอย่าง:

[Header Rewrite]
^http://example\.com.* header-replace DNT 1

ก่อน:
GET /index.html HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Accept-Language: en-us
Accept-Encoding: gzip, deflate
DNT: 0

หลัง:
GET /index.html HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30
Accept-Language: en-us
Accept-Encoding: gzip, deflate
DNT: 1

หมายเหตุ: header-replace จะทำงานก็ต่อเมื่อฟิลด์ส่วนหัวนั้นมีอยู่แล้วเท่านั้น หากต้องการกำหนดค่าฟิลด์ส่วนหัวโดยไม่สนใจว่ามีอยู่หรือไม่ ให้ใช้ header-add ซึ่งจะเขียนทับฟิลด์ที่มีชื่อเดียวกันที่มีอยู่ ดังนั้นจึงไม่จำเป็นต้องใช้ header-del ร่วมกับ header-add


header-replace-regex

เขียนทับบางส่วนของค่าส่วนหัวที่มีอยู่ด้วยนิพจน์ปกติ กฎประกอบด้วยฟิลด์ส่วนหัว นิพจน์ปกติที่ใช้กับค่าของฟิลด์นั้น และค่าที่ใช้แทน ซึ่งอ้างถึงกลุ่มที่จับได้ด้วย $1, $2 หากไม่มีฟิลด์ส่วนหัวนั้นจะไม่เกิดอะไรขึ้น หากนิพจน์ปกติหรือค่าที่ใช้แทนมีช่องว่าง ให้ครอบด้วยเครื่องหมายคำพูดคู่ และ "" หมายถึงแทนที่ด้วยค่าว่าง

ตัวอย่าง:

[Header Rewrite]
^https://example\.com header-replace-regex User-Agent "Chrome/[0-9.]+" Chrome/120.0.0.0
^https://example\.com header-response-replace-regex Set-Cookie "; Secure" ""

นิพจน์ปกติที่ใช้กับค่าส่วนหัวแยกแยะตัวพิมพ์เล็กใหญ่ ฟิลด์ที่มีหลายบรรทัด เช่นบรรทัด Set-Cookie ของการตอบกลับ จะถูกเขียนทับทีละบรรทัดแยกกัน และทุกบรรทัดจะถูกเก็บไว้ เช่นเดียวกับการกระทำอื่น header-response-replace-regex (หรือคำนำหน้า http-response) จะทำงานกับส่วนหัวการตอบกลับ

S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-29 21:57:05

หน้านี้เป็นฉบับแปลจากเวอร์ชันภาษาอังกฤษ หากเนื้อหาไม่ตรงกัน ให้ยึดเวอร์ชันภาษาอังกฤษเป็นหลัก

results matching ""

    No results matching ""