redirect_regex
15 sites
Security covered
This module extends the Redirect module to support regex pattern matching in addition to exact path matching using the redirect entities.
Features
- Extends
RedirectRepository: TheRedirectRegexRepositoryextends theRedirectRepositoryclass - Service Override: Uses a service decorator to override the
redirect.repositoryservice - Compatible with GraphQL through the Redirect module
Examples
Source Path Redirect Target Descriptionregex:blog\/\d+\/.*
/blog/archive
Redirect old blog URLs to archive
regex:user\/\d+\/profile
/user/profile
Redirect user profile URLs
regex:page\/old\/([0-9a-z]+)
/page/new-page
Redirect old page URLs with alphanumeric IDs
Query:
query MyQuery {
route(path: "/user/123/profile") {
... on RouteRedirect {
__typename
internal
redirect
status
url
}
}
}
Response:
{
"data": {
"route": {
"__typename": "RouteRedirect",
"internal": true,
"redirect": true,
"status": 301,
"url": "/node/1"
}
}
}
Creating Regex Redirects
To create a regex redirect:
- Go to
/admin/config/search/redirect/add - Set the From field to:
regex:your-pattern - Example:
regex:user\/\d+\/profile - Set the To field to the redirect target
- Save the redirect
Important Notes:
- Do NOT include a leading slash in the regex pattern (e.g., use
user\/\d+\/profile, not\/user\/\d+\/profile) - The redirect system automatically strips leading slashes before matching
- Remember to escape backslashes in the admin interface (type
\/for literal/in regex) - For redirects from existing routes, enable "Allow redirects from aliases" in redirect settings
- Multilingual Support: Patterns are tested against both the current path and the path with language prefix (e.g.,
user/123/profileanden/user/123/profile)
Dependencies
- Redirect module
Similar projects
- Regex Redirect - Uses regexes with named captures