By using regex matching, you can create infinite complex redirect rules.
Available from our Pro plan and up.
How to use
To enable a regex rule, add an exclamation mark (!)
before your source URL.
!example.com/path/(.*)
This will tell the redirecting engine that the source's path contains a regex which should be matched against the incoming URL.
Example 1
You have developed a new website, and don't have a news page anymore. You wish to redirect all old news pages to a single URL called `https://new-website.com/news-is-removed`
You may define a regex rule like:
!example.com/news/(*.)
This will match all pages that start with `news/`, so you can redirect all paths to a single destination.
URLs that would match:
https://example.com/news/test-123
https://example.com/news/other-article/sub-page-as-well
URLs that wouldn't match:
https://example.com/other-page
https://example.com/news
Example 2
You have an old website that have paths that begin with `farming`, `machine` and `agriculture`. You then wish to redirect all paths that begin with `farming` or `machine`. To accomplish this, you can use a regex like stated below.
!example.com/[farming|machine]-.*
URLs that would match:
https://example.com/farming-page
https://example.com/machine-page/sub-path-as-well
URLs that wouldn't match:
https://example.com/agriculture-page
https://example.com/other-page
Capture groups
You may define capture groups in your regex to use in the destination. The captured group will be passed along to variables like `$1`, `$2` etc. (up to `$10`).
Example 1:
The following example is a simple capture group. We match all paths after the 'welcome/' path, and pass along that part to the destination via the variable `$1`
!example.com/welcome/(.*)/
Then, you may use the capture group's result with the `$1` variable:
https://destination.com/$1
Example 2:
The following example matches the URL if it starts with a valid year-month-day format, with a slug next to it. We then want to pass the date & slug to the new destination, but with a slash as a seperator.
!example.com/^(\d{4}-\d{2}-\d{2})?\/([\w-]+)$
URLs that would match:
https://example.com/2023-01-01/article-slug
https://example.com/2022-06-02/another-article
URLs that wouldn't match:
https://example.com/2023/article-slug
https://example.com/article-slug
https://example.com/20230101/article-slug
https://example.com/202301/article-slug
https://example.com/2023-01-01/article-slug/extra-slug
Then, you may use the two captured groups in the destination how you prefer to build up the new URL:
https://destination.com/news/$1-$2
The destination would be build up with the full date and a dash between the slug. Example: https://destination.com/news/2023-01-01-article-slug
Regex engine
Regexes are matched with the Go/RE2 engine. Reference material can be found here.
Testing
We recommend the following tool to match your regex against your path examples:
https://regex101.com(make sure you select the Golang flavor)
Closing
Do note that the examples above are only indicative examples. Regex matching is extremely powerful and can basically be useful for any path redirect.