Header-Umschreibung
Chute kann Anfrage- und Antwort-Header umschreiben, bevor sie an den Server oder Client weitergeleitet werden.
Mehrere Regeln können auf eine einzelne Anfrage angewendet werden.
Beispiel:
[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
Die Umschreibungsregel besteht aus 4 Teilen: regulärer Ausdruck für URL, Aktionstyp, Header-Feld und Wert.
Hinweis: Der reguläre Ausdruck für die URL muss die vollständige Anfrage-URL abgleichen, nicht nur einen Teilstring davon. Muster sollten in der Regel mit
.*enden, damit URLs mit beliebigem Pfad und Query-String abgeglichen werden.
Anfrage- vs. Antwort-Header
Aktionen mit dem Präfix header- gelten für Anfrage-Header (vom Client zum Server). Aktionen mit dem Präfix header-response- gelten für Antwort-Header (vom Server zum Client).
Ein optionales Richtungspräfix im Surge-Stil http-request / http-response vor dem regulären Ausdruck für die URL wird ebenfalls akzeptiert, z.B. http-request ^http://example\.com.* header-replace Accept-Language en-us.
header-add
Setzt ein Header-Feld im Anfrage-Header auf den angegebenen Wert. Wenn das Header-Feld bereits existiert, wird es überschrieben.
Beispiel:
[Header Rewrite]
^http://example\.com.* header-add DNT 1
Vorher:
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
Nachher:
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
Löscht eine Header-Zeile aus dem Anfrage-Header.
Beispiel:
[Header Rewrite]
^http://example\.com.* header-del DNT
Vorher:
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
Nachher:
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
Ersetzt einen Header-Wert im Anfrage-Header. Wenn das Header-Feld nicht existiert, passiert nichts.
Beispiel:
[Header Rewrite]
^http://example\.com.* header-replace DNT 1
Vorher:
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
Nachher:
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
Hinweis:
header-replacefunktioniert nur, wenn das Header-Feld bereits existiert. Um ein Header-Feld unabhängig davon zu setzen, ob es existiert, verwenden Sieheader-add— es überschreibt jedes vorhandene Feld mit demselben Namen, sodass die Kombination vonheader-delundheader-addunnötig ist.
Diese Seite ist eine Übersetzung der englischen Version. Bei Abweichungen ist die englische Version maßgeblich.