إعادة كتابة الترويسات
يستطيع 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 أجزاء: تعبير نمطي للرابط، نوع الإجراء، حقل الترويسة، والقيمة.
ترويسات الطلب مقابل ترويسات الاستجابة
الإجراءات المسبوقة بـ header- تطبق على ترويسات الطلب (من العميل إلى الخادم). الإجراءات المسبوقة بـ header-response- تطبق على ترويسات الاستجابة (من الخادم إلى العميل).
header-add
إلحاق سطر ترويسة جديد إلى ترويسة الطلب، حتى لو كان حقل الترويسة موجوداً بالفعل.
مثال:
[Header Rewrite]
^http://example.com header-add DNT 1
Before:
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
After:
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
Before:
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
After:
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
Before:
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
After:
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