Force the purpose URI internally enforces the proxy requirements and immediately meets the proxy requirements through ISAPI extensions, which will allow IIS to act as a proxy server and re-rout to other sites and servers
Pattern
Qualify rule expressions to match Request-URI,
FormatString
Qualify FormatString that will generate a new URI
[Flags]
It is a command-separated list of the following FLAGS
D (Delegate security)
Agent mode will attempt to log in to the remote server as the current fake user qualification,
C (use Credentials)
Agent mode will attempt to log into the remote server with the qualification specified in the URL or the basic authorization header file. With this tag you can use http://user:password@/path/ syntax as the URL
F (Follow redirects)
By default, ISAPI_Rewrite will attempt to transfer the redirect instruction returned by the MAP remote server to the local server namespace. If the remote server returns to the redirect point to a certain location other than that server, ISAPI_Rewrite will modify this redirect instruction to point to the server name, which will prevent the user from seeing the real (internal) server name.
Use the F tag to force proxy mode to internally track the redirection instructions returned by the remote server. Use this tag If you do not need to accept the redirection instructions from the remote server at all, there is a redirection restriction in the WINHTTP settings to avoid remote redirection loops.
I (ignore case)
Forced character matching regardless of upper and lower case
U (Unmangle Log)
Record URI when the URI is a source requirement rather than a rewrite requirement
O (nOrmalize)
Standardize strings before implementation. Standardization includes URL-ENCODING, re-moval of illegal characters, etc. This tag is useful for URLS and URLS-ENDODED headers.
CacheClockRate directive
Syntax: CacheClockRate Interval
This instruction only appears in the GLOBAL configuration content. If this instruction appears in the SITE-LEVEL content, it will be ignored and the error message will be written to the file
ISAPI_Rewrite caches is configured every time it is loaded for the first time. Using this directive you can limit the inactive cycle when a specific site is cleaned from the cache. Set this parameter to be large enough. You can force ISAPI_Rewrite to never clean the cache. Remember that any configuration file changes will be updated immediately after the next request and ignore this cycle.
Interval
Limited the inaction time (in seconds) of cache cleaned out of a specific configuration, default value 3600 (1 hour)
EnableConfig and DisableConfig directives
Syntax:
EnableConfig [SiteID|"Site name"]
DisableConfig [SiteID|"Site name"]
Activate or do not activate the SITE-LEVEL configuration for the selected site or change the default configuration. The default SITE-LEVEL configuration is not activated. This instruction only appears in the GLOBAL configuration content.
SiteID
Numeric metabase identifier of a site
Site name
Name of the site as it appears in the IIS console
Use this command without parameters to change the default configuration to the ENABLE/DISABLE configuration process
example
The following example will make the configuration only work on sites whose name is MY SITE
Code:
DisableConfig
EnableConfig 1
EnableConfig"My site"
The following example will activate the SOMESITE configuration name as SOMESITE because it splits the settings and overloads the default settings.
Code:
EnableConfig"Some site"
DisableConfig
EnableRewrite and DisableRewrite directives
Syntax:
EnableRewrite [SiteID|"Site name"]
DisableRewrite [SiteID|"Site name"]
Activate or do not activate the selected site and change the default configuration. The default rewrite configuration is activated. This command only appears in the GLOBAL configuration content.
Code:
SiteID
Numeric metabase identifier of a site
Site name
Name of the site as it appears in the IIS console.
This command will be activated or not activated without using parameters.
RepeatLimit directive
Syntax: RepeatLimit Limit
This instruction can appear in the GLOBAL and SITE-LEVEL configuration files. If it appears in the GLOBAL configuration file, it will change the restrictions on all sites. If it appears in the SITE-LEVEL configuration, it will only change the restrictions on this site and this limit cannot exceed the GLOBAL limit.
ISAPI_Rewrite allows loops when implementing rules. This directive allows limiting the maximum number of possible loops. It can be set to 0 or 1 without supporting loops.
LIMIT
Limit the maximum number of cycles, default 32
RFStyle directive
Syntax: RFStyle Old | New
Configuration Utility
ISAPI_Rewrite Full includes configuration function (can be started in the ISAPI_Rewrite program group), which allows you to browse the test status and enter the registration code (if it is not registered during the installation process), and adjust some product functions related to proxy mode operations. UTILITY is an attribute table composed of three pages.
Trial page allows you to browse the TIRAL status and enter the registration code (if there is no registration during the installation process)
Settings page
This page contains an edit box for the following parameters
Helper URL
This parameter affects the connection between the filter and the proxy module, that is, it can be a file extension prefixed with dots (such as .isrwhlp) or an absolute path.
In the first case, the extension will be appended to the initial request URI and the proxy module is activated through SCRIPT MAP. The default extension isrwhlp is added to the global script map in the installation process. If you change this extension or your application does not inherit global script map, you should manually add the entry required to script map. This should have the following parameters
Code:
Executable: An absolute path to the in the short form
Extension: Desired extension (.isrwhlp is default)
Verbs radio button: All Verbs
Script engine checkbox: Checked
Check that file exists checkbox: Unchecked
We have created a WSH script which can be simply registered in a script maps. It is located in the installation folder and can be run on the command line as follows
cscript [-r] [MetabasePath]
Optional -r Force registration of extension
Optional MetabasePath parameter allows specification of the first metabase key to process. By default it is "/localhost/W3SVC".
To register in all existing script maps you can activate script with the following command line
cscript -r
In the second case, you should provide a URI as the value of 'Helper URL', and you should also map an ISAPI_Rewrite installation folder as the virtual file home of Meiyi sites.
Note: According to customer response, IIS5 (maybe including IIS4) has problems with long directory names. So we highly recommend using short directory names
Worker threads limit
This parameter limits the number of worker threads in the proxy extension thread pool, the default is 0, which means that this limit is equal to the number of processors multiplied by 2
Active threads limit
This parameter limits the current number of running threads, and this number cannot be greater than "Worker threads limit". The default 0 means equal to the number of processors
Queue size This parameter defines the maximum number of requests. If you have ever seen Queue timeout expired” in the Application event log you can add this parameter
Queue timeout
This parameter defines the maximum waiting time for you to prevent new requests in the internal request queue. If you have ever seen the Queue timeout expired” info in the Application event log you can add this parameter
Connect timeout
Set the proxy module connection timeout in milliseconds
Send timeout
Set the proxy module sending timeout in milliseconds
Receive timeout
Set the proxy module sending timeout in milliseconds
About page.
It contains copyright information and a link to the ISAPI_Rewrite's web site.
Regular expression syntax
This part covers the expression syntax specified by ISAPI_Rewrite
Literals
All characters have the original meaning except ".","*", "*", "?", "+", "(", ")", "{", "}", "[", "]", "^" and "$". These characters are the original meaning when processed with "\", and the original meaning means that a character matches itself
Wildcard
The dot character "." matches any single character except null character and newline character
The following is the syntax
Repeats
A repeat is an expression that is repeated an arbitrary number of times. An expression followed by "*" can be repeated any number of times including zero. An expression followed by "+" can be repeated any number of times, but at least once. An expression followed by "?" may be repeated zero or one times only. When it is necessary to specify the minimum and maximum number of repeats explicitly, the bounds operator "{}" may be used, thus "a{2}" is the letter "a" repeated exactly twice, "a{2,4}" represents the letter "a" repeated between 2 and 4 times, and "a{2,}" represents the letter "a" repeated at least twice with no upper limit. Note that there must be no white-space inside the {}, and there is no upper limit on the values of the lower and upper bounds. All repeat expressions refer to the shortest possible previous sub-expression: a single character; a character set, or a sub-expression grouped with "()" for example.
Examples:
Code:
"ba*" will match all of "b", "ba", "baaa" etc.
"ba+" will match "ba" or "baaaa" for example but not "b".
"ba?" will match "b" or "ba".
"ba{2,4}" will match "baa", "baaa" and "baaaa".
Non-greedy repeats
Non-greedy repeats are possible by appending a '?' after the repeat; a non-greedy repeat is one which will match the shortest possible string.
For example to match html tag pairs one could use something like:
Code:
"<\s*tagname[^>]*>(.*?)<\s*/tagname\s*>"
In this case $1 will contain the text between the tag pairs, and will be the shortest possible matching string.
Parenthesis
Parentheses serve two purposes, to group items together into a sub-expression, and to mark what generated the match. For example the expression "(ab)*" would match all of the string "ababab". All sub matches marked by parenthesis can be back referenced using \N or $N syntax. It is permissible for sub-expressions to match null strings. Sub-expressions are indexed from left to right starting from 1, sub-expression 0 is the whole expression.
Non-Marking Parenthesis
Sometimes you need to group sub-expressions with parenthesis, but don't want the parenthesis to spit out another marked sub-expression, in this case a non-marking parenthesis (?:expression) can be used. For example the following expression creates no sub-expressions:
"(?:abc)*"
Alternatives
Alternatives occur when the expression can match either one sub-expression or another, each alternative is separated by a "|". Each alternative is the largest possible previous sub-expression; this is the opposite behaviour from repetition operators.
Examples:
"a(b|c)" could match "ab" or "ac".
"abc|def" could match "abc" or "def".
Sets
A set is a set of characters that can match any single character that is a member of the set. Sets are delimited by "[" and "]" and can contain literals, character ranges, character classes, collating elements and equivalence classes. Set declarations that start with "^" contain the compliment of the elements that follow.
Examples:
Character literals:
"[abc]" will match either of "a", "b", or "c".
"[^abc] will match any character other than "a", "b", or "c".
Character ranges:
"[a-z]" will match any character in the range "a" to "z".
"[^A-Z]" will match any character other than those in the range "A" to "Z".
Character classes
Character classes are denoted using the syntax "[:classname:]" within a set declaration, for example "[[:space:]]" is the set of all whitespace characters. The available character classes are:
Previous page1234Next pageRead the full text