Before adding features that customize how your traffic is processed, you must first decide the set of requests to which they will be applied. You may either apply them to all requests or use match condition(s) to only apply them to specific requests. Common request matching scenarios are listed below.
In addition to these common scenarios, there are many other ways through which Rules can match requests. Additionally, you can combine match conditions to selectively apply features when multiple conditions have been met. You may also use Else or Else If statements to apply features when specific criteria has not been met. The power and flexiblity of Rules allows you to use basic configurations or build upon them to create a configuration that addresses your complex business needs.
Create a rule without match conditions to apply a set of features to all requests. The recommended position for this rule is the top of the list. This allows rules positioned below it to override this configuration for specific use cases.
Check for the
always applied label to verify that a rule does not have match conditions.
Apply a set of features to:
- A specific hostname through the Request Header match condition.
- A specific path through the Path match condition.
- A query parameter through the Query Parameter match condition.
Use the Request Header match condition to find requests by hostname.
- Set the Header Name option to
- Verify that the Operator option is set to
- Set the Value option to the desired hostname.
The following configuration matches all requests whose
Host header is set to
Match all requests for multiple hostnames through a regular expression. The following configuration matches all requests whose
Host header is set to
Use the Path match condition to match requests by path. The most common configuration is to apply a rule across all requests whose relative URL starts with a specific value. Set up this match condition by selecting the
matches regular expression operator and then appending
.* to the desired relative path.
The above match configuration matches all requests whose relative path starts with:
/marketing/conferences/. For example, it matches all of the following request URLs:
Restrict the above rule to images whose relative path starts with:
/marketing/conferences/ by adding the Extension match condition. Set up this match condition by selecting the
is one of operator and then defining the desired file extensions (e.g., png, jpg, and jpeg).
Use the Query Parameter match condition to find requests that contain a query string parameter set to a specific value. The following configuration matches all requests whose query string contain
For example, the above configuration matches against the following request:
Use the Method match condition to find requests submitted with the desired HTTP method (e.g.,
Use the Cookie match condition to find requests that contain a cookie set to a specific value. The following configuration matches all requests that contain this cookie:
For example, the above configuration matches against a request that contains the following cookies:
sessionid=12345; type=oatmeal; token=1fj4f3nfy4f7s
Use the Request Header match condition to find requests that contain a header set to a specific value. The following configuration matches all requests whose
Accept-Language header contains
Use the Country match condition to find requests from one or more countries. The following configuration matches all requests from the US, Canada, and Mexico.
Match requests when they satisfy:
- A single match condition. The majority of the above examples demonstrate how to match by a single match condition.
- Multiple match conditions.
- Any match condition defined within a statement.
- Any statement.
- None of the match conditions defined within a rule.
You can add multiple match conditions to a single statement. By default, a request must satisfy all of these conditions before a set of features will be applied to it.
The following sample configuration redirects traffic that meets both of the following conditions:
- Matches a specific relative path.
- Originates outside of North America.
and label, which appears next to the Country match condition, indicates that a request must satisfy both match conditions before it will be redirected.
Apply a set of features to requests that match any match condition in a statement by toggling the
and labels to
The following sample configuration redirects traffic when it meets any of the following conditions:
- The request’s relative path starts with:
- The request originated from a country other than the United States, Mexico, or Canada.
- The request contained a session cookie set to
Add at least one match condition to an Else statement to allow requests to match against any of a rule’s statements.
In the following sample rule, Edgio will first check whether the request’s relative path starts with
/shopping/. If the request starts with a different relative path, it will then check whether the request originated from the United States, Canada, or Mexico. If the request starts with a different relative path and does not originate from those countries, then it will check whether the
session cookie has been set to set
Add an Else statement without any match conditions to match requests that do not satisfy any of the preceding statements.
In the following sample rule, a default caching policy is applied to requests when their relative path does not start with
/shopping/ or if they were not issued from the United States, Canada, or Mexico.