Header Rewrite
Chute สามารถเขียนส่วนหัวของคำขอและการตอบกลับใหม่ก่อนที่จะถูกส่งต่อไปยังเซิร์ฟเวอร์หรือไคลเอนต์
สามารถใช้กฎหลายตัวกับหนึ่งคำขอ
ตัวอย่าง:
[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, ประเภทการกระทำ, ฟิลด์ส่วนหัว และค่า
ส่วนหัวคำขอ vs ส่วนหัวการตอบกลับ
การกระทำที่มีคำนำหน้า header- จะใช้กับส่วนหัวคำขอ (จากไคลเอนต์ไปยังเซิร์ฟเวอร์) การกระทำที่มีคำนำหน้า header-response- จะใช้กับส่วนหัวการตอบกลับ (จากเซิร์ฟเวอร์ไปยังไคลเอนต์)
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-add และ header-del ร่วมกัน
[Header Rewrite]
^http://example.com header-del DNT
^http://example.com header-add DNT 1