Updated Branches: refs/heads/master f3fa606a0 -> 4fab19a1a
Update docs for the header_rewrite plugin Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/4fab19a1 Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/4fab19a1 Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/4fab19a1 Branch: refs/heads/master Commit: 4fab19a1ad865e231849e1417f32177b853f9332 Parents: f3fa606 Author: Leif Hedstrom <[email protected]> Authored: Fri Sep 13 17:38:29 2013 -0600 Committer: Leif Hedstrom <[email protected]> Committed: Fri Sep 13 17:38:29 2013 -0600 ---------------------------------------------------------------------- plugins/header_rewrite/README | 88 +++++++++++++++------ plugins/header_rewrite/header_rewrite.config | 94 ----------------------- 2 files changed, 66 insertions(+), 116 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/trafficserver/blob/4fab19a1/plugins/header_rewrite/README ---------------------------------------------------------------------- diff --git a/plugins/header_rewrite/README b/plugins/header_rewrite/README index df8165f..ed6eeb0 100644 --- a/plugins/header_rewrite/README +++ b/plugins/header_rewrite/README @@ -8,16 +8,16 @@ Note that currently only static string "values" are supported. We'll add advanced features to allow for expansions in a future release. -Operations ----------- +Operators +--------- +The following operators are available: rm-header header-name [flags] - add-header header "string" [flags] - set-status status-code [flags] - set-status-reason reason-string [flags] + add-header header <value> [flags] + set-status <status-code> [flags] + set-status-reason <value> [flags] no-op [flags] - The following operator(s) currently only works when instantiating the plugin as a remap plugin: @@ -36,24 +36,41 @@ For example (as a remap rule): set-destination HOST foo.mobile.bar.com [L] - -Operation flags ---------------- +Operator flags +-------------- [L] Last rule, do not continue Conditions ---------- - - cond %{STATUS} operand [flags] - cond %{RANDOM:nn} operand [flags] - cond %{ACCESS:file} [flags] - cond %{TRUE} [flags] - cond %{FALSE} [flags] - cond %{HEADER:header-name} [flags] - - -These conditions have to be first in a ruleset, and you can only have one: +The conditions are used as qualifiers: The operators specified will +only be evaluated if the condition(s) are met. + + cond %{STATUS} operand [flags] + cond %{RANDOM:nn} operand [flags] + cond %{ACCESS:file} [flags] + cond %{TRUE} [flags] + cond %{FALSE} [flags] + cond %{HEADER:header-name} operand [flags] + cond %{CLIENT-HEADER:header-name} operand [flags] + cond %{METHOD} operand [flags] + cond %{PROTOCOL} operand [flags] + cond %{PORT} operand [flags] + cond %{HOST} operand [flags] + cond %{TOHOST} operand [false] + cond %{FROMHOST} operand [false] + cond %{PATH} operand [false] + cond %{PARAMS} operand [false] + cond %{QUERY} operand [false] + + +The difference between HEADER and CLIENT-HEADER is that HEADER adapts to the +hook it's running in, whereas CLIENT-HEADER always applies to the client +request header. The %{TRUE} condition is also the default condition if no +other conditions are specified. + +These conditions have to be first in a ruleset, and you can only have one in +each rule. This implies that a new hook condition starts a new rule as well. cond %{READ_RESPONSE_HDR_HOOK} (this is the default hook) cond %{READ_REQUEST_HDR_HOOK} @@ -63,6 +80,7 @@ These conditions have to be first in a ruleset, and you can only have one: Condition flags --------------- + [NC] Not ase sensitive condition (when applicable) [AND] AND with next condition (default) [OR] OR with next condition [NOT] Invert this condition @@ -70,9 +88,35 @@ Condition flags Operands to conditions ---------------------- - =val Lexically equal - <val Lexically less then - >val Lexically greater then + /string/ # regular expression + <string # lexically lower + >string # lexically greater + =string # lexically equal + +The absense of a "matcher" means value exists). + + +Values +------ +Setting e.g. a header with a value can take the following formats: + + - Any of the cond definitions, that extracts a value from the request + - $N 0 <= N <= 9, as grouped in a regular expression + - string (which can contain the above) + - null + + +Examples +-------- + +cond %{HEADER:X-Y-Foobar} +cond %{METHOD} =GET [OR] +cond %{METHOD} =POST +set-header X-Y-Fiefum %{HEADER:X-Y-Foobar} +rm-header X-Y-Foobar +rm-header Set-Cookie + +cond %{HEADER:X-Y-Foobar} "Some string" [AND,NC] http://git-wip-us.apache.org/repos/asf/trafficserver/blob/4fab19a1/plugins/header_rewrite/header_rewrite.config ---------------------------------------------------------------------- diff --git a/plugins/header_rewrite/header_rewrite.config b/plugins/header_rewrite/header_rewrite.config deleted file mode 100644 index 2b83d1a..0000000 --- a/plugins/header_rewrite/header_rewrite.config +++ /dev/null @@ -1,94 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -Operators ---------- -rm-header Header matcher -add-header Header value -set-header Header value - -set-status value -set-status-reason value - - -Conditions ------------ -%{TRUE} # Default condition if none specified -%{FALSE} -%{HEADER:string} -%{YCOOKIE:id} -%{METHOD} -%{PROTOCOL} -%{PORT} -%{HOST} -%{TOHOST} -%{FROMHOST} -%{PATH} -%{PARAMS} -%{QUERY} -%{STATUS} - -# These can only be used as the first condition of a new ruleset, -# and have no run-time evaluation effects (only config parse time). -%{READ_RESPONSE_HDR_HOOK} # Default -%{READ_REQUEST_HDR_HOOK} - - -Operator Flags --------------- -L # Last rule (stop evaluations) - - -Cond Flags ----------- -NC # Not case sensitive condition (when applicable) -NOT # Negate the cond -OR # Local OR between conds -AND # Logical AND betwen conds - - -Matcher --------- - -/string/ # regular expression -<string # lexically lower ->string # lexically greater -=string # lexically equal - -(The absense of a "matcher" means value exists). - - -Values ------- - -Any of the cond definitions, that extracts a value from the request -$N 0 <= N <= 9, as grouped in a regular expression -string (which can contain the above) -null - - -Examples --------- - -cond %{HEADER:X-Y-Foobar} -cond %{METHOD} =GET [OR] -cond %{METHOD} =POST -set-header X-Y-Fiefum %{HEADER:X-Y-Foobar} -rm-header X-Y-Foobar -rm-header Set-Cookie - -cond %{HEADER:X-Y-Foobar} "Some string" [AND,NC]
