querystring.sort
Available inall subroutines.
Returns the given URL with its query string sorted. For example,
querystring.sort("/foo?b=1&a=2&c=3");
returns "/foo?a=2&b=1&c=3"
.
Passing in true
to the only_unique_keys
parameter will filter out non-unique keys from the query string parameters.
For instance, querystring.sort("/test?a=7&a=2&a=1&b=5&b=3", true)
yields "/test?a=7&b=5"
.
Some additional behaviors to note:
- If there are more than 32 parameters, the URL is left unsorted.
- Sorting is case-sensitive, with uppercase coming before lowercase (e.g., "A" sorts before "a").
- All parameters are preserved by default, even with duplicate keys or duplicate values.
- Empty parameters with no key will be dropped.
Example
set req.url = querystring.sort(req.url);set req.url = querystring.sort(req.url, true);
Try it out
querystring.sort
is used in the following code examples. Examples apply VCL to real-world use cases and can be deployed as they are, or adapted for your own service. See the full list of code examples for more inspiration.
Click RUN on a sample below to provision a Fastly service, execute the code on Fastly, and see how the function behaves.
Filter query string parameters
Add, remove, and sort querystring parameters.
Normalize requests to increase cache efficiency
Improve cache performance by normalizing requests. Filter and reorder query params, convert to lowercase, filter headers, and more.