Skip to content

Commit d4eb284

Browse files
committed
move offset to server variable section
1 parent 2ed331c commit d4eb284

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

articles/frontdoor/rule-set-server-variables.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ When you use [Rule set actions](front-door-rules-engine-actions.md), you can use
3838
| `ssl_protocol` | The protocol of an established TLS connection.<br/> To access this server variable in a match condition, use [SSL protocol](rules-match-conditions.md?toc=%2fazure%2ffrontdoor%2fstandard-premium%2ftoc.json#ssl-protocol).|
3939
| `server_port` | The port of the server that accepted a request.<br/> To access this server variable in a match condition, use [Server port](rules-match-conditions.md?toc=%2fazure%2ffrontdoor%2fstandard-premium%2ftoc.json#server-port).|
4040
| `url_path` | Identifies the specific resource in the host that the web client wants to access. This is the part of the request URI without the arguments or leading slash.<br />For example, in the request `http://contoso.com:8080/article.aspx?id=123&title=fabrikam`, the `url_path` value is `article.aspx`. <br /> Azure Front Door supports dynamic capture of URL path with `{url_path:seg#}` server variable, and converts URL path to lowercase or uppercase with `{url_path.tolower}` or `{url_path.toupper}`. For more information, see [Server variable format](#server-variable-format) and [Server variables](rule-set-server-variables.md). <br/> To access this server variable in a match condition, use [Request path](rules-match-conditions.md#request-path) condition. |
41-
| `offset` | Offset corresponds to the index of the start segment, and length refers to how many segments to capture (including the one at index = offset). <br> Assuming offset and length are positive, the following logic applies: <br> <ul><li>If length isn't included, capture the segment at index = offset.</li><li> When length is included, capture segments from index = offset up until index = offset + length</li></ul><br>The following special cases are also handled:<br><ul><li>If offset is negative, count backwards from end of the path to get the starting segment.</li><li>If offset is a negative value greater than or equal to the number of segments, set to 0.</li><li>If offset is greater than the number of segments, the result is empty.</li><li>If length is 0, then return the single segment specified by offset.</li><li>If length is negative, treat it as a second offset and calculate backwards from the end of the path. If the value is less than offset, it results in an empty string.</li><li>If length is greater than the number of segments, return what remains in the path.</li> |
4241

4342
## Server variable format
4443

@@ -52,6 +51,17 @@ When you work with Rule Set actions, specify server variables by using the follo
5251
* Offsets and lengths within range: `{var:0:5}` = `AppId`, `{var:7:7}` = `1f59297`, `{var:7:-7}` = `1f592979c584d0f9d679db3e`
5352
* Zero lengths: `{var:0:0}` = null, `{var:4:0}` = null
5453
* Offsets within range and lengths out of range: `{var:0:100}` = `AppId=01f592979c584d0f9d679db3e66a3e5e`, `{var:5:100}` = `=01f592979c584d0f9d679db3e66a3e5e`, `{var:0:-48}` = null, `{var:4:-48}` = null
54+
* `Offset` corresponds to the index of the start segment, and length refers to how many segments to capture, including the one at index = offset.
55+
* Assuming offset and length are positive, the following logic applies:
56+
* If length isn't included, capture the segment at index = offset.
57+
* When length is included, capture segments from index = offset up till index = offset + length.
58+
* The following special cases are also handled:
59+
* If offset is negative, count backwards from end of the path to get the starting segment.
60+
* If offset is a negative value greater than or equal to the number of segments, set to 0.
61+
* If offset is greater than the number of segments, the result is empty.
62+
* If length is 0, the return the single segment specified by offset
63+
* If length is negative, treat it as a second offset and calculate backwards from the end of the path. If the value is less than offset, it results in an empty string.
64+
* If length is greater than the number of segments, return what remains in the path.
5565
* `{url_path:seg#}`: Allow users to capture and use the desired URL path segment in URL Redirect, URL Rewrite, or any meaningful action. User can also capture multiple segments by using the same style as substring capture `{url_path:seg1:3}`. For example, for a source pattern `/id/12345/default` and a URL rewrite Destination `/{url_path:1}/home`, the expected URL path after rewrite is `/12345/home`. for a multiple-segment capture, when the source pattern is `/id/12345/default/location/test`, a URL rewrite destination `/{url_path:seg1:3}/home` results in `/12345/default/location/home`. Segment capture includes the location path, so if route is `/match/*`, segment 0 will be match.
5666
* `{url_path.tolower}`/`{url_path.toupper}`: Convert the URL path to lowercase or uppercase. For example, a destination `{url_path.tolower}` in URL rewrite/redirect for `/lowercase/ABcDXyZ/EXAMPLE` results in `/lowercase/abcdxyz/example`. A destination `{url_path.toupper}` in URL rewrite/redirect for `/ABcDXyZ/example` results in `/ABCDXYZ/EXAMPLE`.
5767

0 commit comments

Comments
 (0)