How to escape {curly brackets} in URL Rewrite rule
There is no escaping character in an URL Rewrite expression, but here is how you include curly bracket within an URL Rewrite expression.
For opening { curly bracket you will always require to use the UrlDecode function to generate the { character from its encoded value %7B, that is:
{UrlDecode:%7B}
For closing } curly bracket you don’t have do anything if the character is not nested in a another URL Rewrite expression; otherwise you need to use UrlDecode with %7D.
{UrlDecode:%7D}
Examples
For generating “Products.aspx?Id={Guid}”, where the Guid comes from a map expression:
“Products.aspx?Id={UrlDecode:%7B}{GuidMap:{R:0}}}”
Note that the last closing curly bracket is written as it is, it doesn’t require to be encoded because there is no opening { bracket that matches, so it is handled as a regular character.
- {UrlDecode:%7B}
- {
- GuidMap:{R:0}
- }
- }
When a closing { bracket is nested in another expression you will need to encode it. NameFromGuidMap is a map that requires the input to be formatted as “{GUID}”.
“Products.aspx?Name={NameFromGuidMap:{UrlDecode:%7B}{R:0}{UrlDecode:%7D}}”
- {
- NameFromGuidMap:
- {UrlDecode:%7B}
- {R:0}
- {UrlDecode:%7D}
- NameFromGuidMap:
- }