Learn how to use URL patterns to control when and where your content appears in your application
Note: These URL pattern rules apply to Current page conditions only. For Navigate to page actions, you’ll need to use the full URL and can insert user attributes for dynamic values.
-
as a wildcard to match anything:segment
to match a single dynamic segmenthttps://example.com/app/dashboard
http://example.com/app/dashboard
https://other-example.com/app/dashboard
https://example.com/app
https://example.com/app/dashboard/sub
https://example.com/app/dashboard/sub/page
*
matches everything (including nothing).
✅ Matches:
https://example.com/app
https://example.com/app/projects
https://example.com/app/projects/1
https://other-example.com/app
https://example.com/applications
https://example.com/settings
/
before the *
.
✅ Matches:
https://example.com/app/projects
https://example.com/app/projects/1
https://other-example.com/app/projects
https://example.com/app
https://example.com/applications
:project
matches any single path segment (anything except /
).
✅ Matches:
https://example.com/projects/1/details
https://example.com/projects/2/details
https://example.com/projects/1/details/edit
https://example.com/projects/1/history
https://example.com/app/apple/projects/1
https://example.com/app/banana/projects/1
https://example.com/app/banana/projects/1/details
https://example.com/app/apple/projects
https://app.com/
https://app.com/any/path
https://www.app.com/
https://not-app.com/
https://www.app.com/
https://www.app.com/any/path
https://dashboard.app.com/
https://app.com/
https://multiple.levels.app.com/
https://www.not-app.com/
https://dashboard.example.com/app/apple/projects
https://dashboard.example.com/app/apple/projects/1
://
(usually http
or https
).
://
and the first /
.
apple.app.com
and banana.app.com
), use a colon and an arbitrary name such as :company.app.com
. :company
will match a non-empty subdomain, meaning it will not include .
. The name after :
does not matter and is currently not used for anything.
:company.app.com
and :subdomain.app.com
are equivalent and will match:
apple.app.com
banana.app.com
app.com
(missing subdomain)more.apple.app.com
(more subdomains)*
as a wildcard character to match any number of subdomains.
*.app.com
will match both one.app.com
and one.two.app.com
, but not app.com
.
*app.com
will match app.com
, but will also match myapp.com
.
?
) or the fragment (starting with #
).
/
/
(e.g. app/projects
), the system will treat app
as a domain/app/projects
:paramName
to match dynamic path segments:
/app/apple/projects
/app/banana/projects
/app/projects
(missing company segment)/app/apple/projects/1
(path too deep)Tip: Parameter names like:company
or:slug
are just identifiers - you can name them anything, they don’t affect the matching logic
*
to match any path:
/app/*
/app/one
, /app/one/two
/app
/app/
/app*
/app
, /applications
app
/*/projects
/app/projects
, /app/one/two/three/projects
?
and before #
in a URL.
key=value
)&
?fruit=apple&tab=analytics
will match:
?fruit=apple&tab=analytics
?tab=analytics&fruit=apple
(different order, same result)?other=test&fruit=apple&tab=analytics
(extra params ignored)#
in a URL.
Tip: In single-page applications (SPAs), fragments often act like paths and can be matched using the same patterns