Entry Path as Directory
The mapping behaviour of trailing slashes depends on the chosen validator – see Option Enforce trailing slashes.
- Example
- ●Virtual host: Name = webapp.ext.virtinc.com , Protocol = https
- ●Mapping:
Entry path = /private/ (directory)
Back-end path = / (directory) - ●Back-end host: IP = 123.234.132.1, Protocol = http
- ●Incoming => back-end request URL:
https://webapp.ext.virtinc.com/private/ => http://123.234.132.1/
https://webapp.ext.virtinc.com/private/index.html => http://123.234.132.1/index.html
https://webapp.ext.virtinc.com/private/images/logo.gif => http://123.234.132.1/images/logo.gif
https://webapp.ext.virtinc.com/private (no trailing slash) => the gateway sends redirect to http://webapp.ext.virtinc.com/private/
The ignore-case icon behind the field determines if the entry path is treated case-insensitive, i.e. requests for the directory /CRM should be sent to the same mapping as for the directory /crm.
Entry Path as Regular Expression
The entry path is interpreted as a regular expression. A request matches the entry path if its URL path matches the specified regular expression. The ignore-case icon behind the field determines if the match is case-sensitive. If the entry path is a regular expression, the back-end path must be a replacement pattern that transforms the entry path to the back-end path. It normally contains back-references ($1, $2...$n) that correspond to parts of the entry path (substrings in parentheses, see example below).
Any URL parameters (after the ? in the URL) are not part of the entry path, these parameters will be ignored for the regular expression match. After constructing the back-end path, the parameters of the original request URL are appended to construct the complete back-end URL. It is not possible to append new parameters to the back-end URL.
The URL path of a request may match multiple regular expressions. For that reason, a unique priority must be chosen for each regular expression mapping.
- Example
- ●Virtual host: Name = webapp.ext.virtinc.com, Protocol = https
- ●Mapping:
Entry path = ^/session_([0-9A-F]{8})/(.*\.(gif|jpg|ico))$ (regular expression)
Back-end path = /session_$1/img/$2 (replacement pattern) - ●Back-end host: IP = 123.234.132.1, Protocol = http
- ●Incoming => back-end request URL:
https://webapp.ext.virtinc.com/session_373E04C5/logo.jpg => http://123.234.132.1/session_373E04C5/img/logo.jpg
https://webapp.ext.virtinc.com/session_373E04C5/test/space.gif => http://123.234.132.1/session_373E04C5/img/test/space.gif
The rewriting variables %ENTRYPATH% and %BACKENDPATH% cannot be used because their value is undefined for a regular expression mapping.