The #1 Redirect plugin for October CMS
This is the best Redirect-plugin for October CMS. With this plugin installed you can manage redirects directly from October CMS' beautiful interface. Many webmasters and SEO specialists use redirects to optimise their website for search engines. This plugin allows you to manage such redirects with a nice and user-friendly interface.
History
This plugin was originally build in 2016 by Alwin Drenth a Software Engineer at Van der Let & Partners. As of 2018 this plugin is re-distributed to the October CMS Marketplace with vendor name Vdlp.Redirect (formerly known as Adrenth.Redirect).
The Redirect plugin will now be maintained by Van der Let & Partners and You (the open source community).
What does this plugin offer?
This plugin adds a 'Redirects' section to the main menu of October CMS. This plugin has a unique and fast matching algorithm to match your redirects before your website is being rendered.
Features
- Quick matching algorithm
- A test utility for redirects
- Matching using placeholders (dynamic paths)
- Matching using regular expressions
- Exact path matching
- Importing and exporting redirect rules
- Schedule redirects (e.g. active for 2 months)
- Redirect to external URLs
- Redirect to internal CMS pages
- Redirect to relative or absolute URLs
- Redirect log
- Categorize redirects
- Statistics
- Hits per redirect
- Popular redirects per month (top 10)
- Popular crawlers per month (top 10)
- Number of redirects per month
- And more...
- Multilingual (Need help translating! Contact us at octobercms@vdlp.nl)
- Supports MySQL, SQLite and Postgres
- HTTP status codes 301, 302, 303, 404, 410
- Caching
Supported database platforms
- MySQL
- Postgres
- SQLite
Supported HTTP status codes
HTTP/1.1 301 Moved Permanently
HTTP/1.1 302 Found
HTTP/1.1 303 See Other
HTTP/1.1 404 Not Found
HTTP/1.1 410 Gone
Supported HTTP request methods
GET
POST
HEAD
Performance
All redirects are stored in the database and will be automatically "published" to a file which the internal redirect mechanism uses to determine if a certain request needs to be redirected. This is way faster than querying a database.
This plugin is designed to be fast and should have no negative effect on the performance of your website.
To gain maximum performance with this plugin:
- Enable redirect caching using a "in-memory" caching method (see Caching).
- Maintain your redirects frequently to keep the number of redirects as low as possible.
- Try to use placeholders to keep your number of redirect low (less redirects is better performance).
Caching
If your website has a lot of redirects it is recommended to enable redirect caching. You can enable redirect caching in the settings panel of this plugin.
Only cache drivers which support tagged cache are supported. So driver file
and database
are not supported. For this plugin database and file caching do not increase performance, but can actually have a negative influence on performance. So it is recommended to use an in-memory caching solution like memcached
or redis
.
How caching works
If caching is enabled (and supported) every request which is handled by this plugin will be cached. It will be stored with tag Vdlp.Redirect
.
When you modify a redirect all redirect cache will be invalidated automatically. It is also possible to manually clear the cache using the 'Clear cache' button in the Backend.
Placeholders
This plugin makes advantage of the symfony/routing
package. So if you need more info on how to make placeholder requirements for your redirection URLs, please go to: https://symfony.com/doc/current/components/routing/introduction.html#usage
Contribution
Please feel free to contribute to this awesome plugin.
Questions? Need help?
If you have any question about how to use this plugin, please don't hesitate to contact us at octobercms@vdlp.nl. We're happy to help you. You can also visit the support forum and drop your questions/issues there.
If you love this quality plugin as much as we do, please rate our plugin.
The following plugins extend or depend on the plugin
Redirect Conditions
Allows plugin developers to create Redirect Condition extension plugins.
Redirect Conditions
Allows plugin developers to create Redirect Condition extension plugins.
Redirect Conditions: Header
Adds Header conditions to the Redirect plugin.
Redirect Conditions: Header
Adds Header conditions to the Redirect plugin.
This plugin should be easy to understand if you are familiar with the basics of the web. If you have issues setting up some redirects, please do not hesitate to contact me.
Redirect types
This plugins ships with two types of redirects:
- Exact; performs an exact match on the Source path.
- Placeholders; matches placeholders like {id} or {category} (like the defined routes in Symfony or Laravel framework).
- Regular expression; Use regular expressions to match multiple patterns at once (advanced).
Redirect target types
This plugin allows you to redirect to the following types:
- An internal path
- An internal CMS Page
- An internal Static Page (
RainLab.Pages
plugin) - An external URL
Relative vs. Absolute URLs
Both types are supported by the Redirect plugin. Absolute URLs are generated by default. This setting can be changed at the Redirect Settings page.
In some cases it is necessary to use Relative URLs only. When using a reverse proxy for example. Or when you are hosting multiple domains on one single codebase.
Example when Absolute URLs are enabled (default):
Source path: /path/from Target path: /path/to Result path when matched: https://example.com/path/to
Example when Relative URLs are enabled:
Source path: /path/from Target path: /path/to Result path when matched: /path/to
Scheme matching
This plugin allows you to match requests from a http://
scheme to a https://
scheme and vice versa.
Placeholders
Every placeholder can be attached to a requirement. A requirement consists of a placeholder
, requirement
and an optional replacement
value.
Example:
Input path: /blog.php?category=cat&id=145 Source path: /blog.php?category={category}&id={id} Target path: /blog/{category}/{id} Result path: /blog/cat/145
- The requirement for
{category}
would be:[a-zA-Z]
or could be more specific like(dog|cat|mouse)
. - The requirement for
{id}
would be:[0-9]+
.
Replacement value
A requirement can also contain a replacement value. Provide this replacement value if you need to rewrite a certain placeholder to a static value.
Example:
The requirement for {category}
is (dog|cat|mouse)
, with replacement value animals
.
Input path: /blog.php?category=mouse&id=1337 Source path: /blog.php?category={category}&id={id} Target path: /blog/{category}/{id} Result: /blog/animals/1337
Result in TestLab:
Regular expression (advanced)
For advanced users there's the Regular Expression matching logic. Please refer to the PHP.net preg_match
manual.
The actual $matches
result from the preg_match($sourcePath, $url, $matches)
function can be used in the target path and will be replaced with the matched value.
Example (with matches replacement):
Input path: /foo/my-match Source Path: @/foo/(.*)?@ Target Path: /bar/{1} Result: /bar/my-match
Redirect Target
You can select a CMS Page as a Redirect target. Placeholders are supported. Let's assume there is a page 'Blog' with the following URL: /blog/:category/:subcategory
.
It is possible to create a Redirect with placeholders that has this CMS Page as a target:
Redirect with: Source: `/blog.php?cat={category}&subcat={subcategory}` Placeholders: {category}, {subcategory} Target: CMS Page `Blog` Request path: /blog.php?cat=news&subcat=general Result: /blog/news/general
Events
Fires events
Event | Payload | Description |
---|---|---|
vdlp.redirect.match |
none | When a request matched, right before the redirect response. |
vdlp.redirect.changed |
int[] $redirectId | When one or more redirects are changed. |
Listens to events
Event | Payload | Description |
---|---|---|
vdlp.redirect.toUrlChanged |
string $oldUrl, string $newUrl |
Can be fired from a third-party plugin. |
Commands
Command | Description |
---|---|
vdlp:redirect:publish-redirects |
Publish all redirects. |
-
Renick Büttner
Found the plugin useful on 9 Mar, 2021
This plugin is really nice and handy. It has more functions than I expected, thank you! :)
-
Wolck
Found the plugin useful on 30 Oct, 2020
Perfect plugin. Does what he has to do and does it well.
Alwin responded quickly and appropriately to a request. Thanks!
-
Vaclav Samal
Found the plugin useful on 20 Oct, 2020
Great plugin thanks!
it si possilbe on this plugin redirect www to non-www site url?
Thanks
-
Ben Thomson
Found the plugin useful on 15 Jul, 2020
This plugin is pretty much one of the first I'll install into any October CMS website. Absolutely essential for migrating sites to October CMS. Amazing work, VDLP.
-
Volodymyr Gavrylov
Found the plugin useful on 9 Jun, 2020
Thanks for this awesome plugin! It is really very useful. It has many settings that are easy to configure and work perfectly. We have been using this plugin for a long time in our projects and it meets all our requirements. The plugin support at the highest level. Keep up the good work!
-
Zaxh
Found the plugin useful on 18 May, 2020
Great plugin! Usually one of the first things I install on a new site.
-
Paolo M
Found the plugin useful on 17 Jan, 2020
A very well done and essential plugin for OctoberCMS
-
Gavin Foster
Found the plugin useful on 3 Jan, 2019
Probably one of the most impressive October Plugins I've ever seen on marketplace. Works brilliantly! Thank you!
-
Martin Kryl
Found the plugin useful on 14 Aug, 2018
This is a great plugin. Works like a charm, is packed with features and does exactly what is expected.
The level of attention to details and nice visual presentation make it a pleasure to work with.
-
Joseph
Found the plugin useful on 1 Mar, 2018
This is an excellent plugin. Not only it is jam-packed with features, but the live demo site and video tutorial make it easy to evaluate the usefulness of the plugin even before installing it.
The plugin is very easy to use and also doubles up as a brilliant showcase for how flexible October's backend forms are for plugin development; it's a great learning experience just looking through the source code.
I have just made a bitcoin donation equal to €15 and encourage others to do the same as this is a very high quality plugin and the author should be encouraged to maintain it and build more!
Thanks again!
-
Sam
Found the plugin useful on 12 Dec, 2017
This is one of the best plugins I have every used with October. It is power packed with loads of features to handle various types of redirects.
Superior quality plugin with excellent support from the author. A++
-
Alex Ax
Found the plugin useful on 12 Jun, 2017
Perfect when you come from TYPO3!
-
Herzon Garlan
Found the plugin useful on 2 Jun, 2017
The support for this plugin is top-notch! I had an issue with my PostgreSQL database and Alwin responded to me and fixed the issue in no time. Plugin works great and saves me a lot of headaches for handling all the redirects. This plugin is a must have.
-
Alexander / Aebian
Found the plugin useful on 15 Mar, 2017
Thanks for the plugin. Its easy to use and works like a charm. I don't use the statistic page that much but the design looks modern and comfortable. Also the feature to export and import stuff is very cool.
Worth it!
-
Alwin Drenth author
Replied on 15 Mar, 2017
Hi Alexander,
As of version 3.3.0 you can disable statistics completely, but also TestLab (beta) and logging can be disabled. Head over to the Settings section in OctoberCMS.
-
Miloš Stanić
Found the plugin useful on 14 Mar, 2017
Great plugin, helped me a lot because I redesigned an old website, and now using the plugin to redirect hits to old links to new ones. Super useful.
-
Heath Dutton
Found the plugin useful on 25 Jan, 2017
The Github repository seems to have been made private or deleted. This broke our composer builds. Can we expect it to come back or should we use a fork from now onward?
-
Alwin Drenth author
Replied on 25 Jan, 2017
Please see the Support forum for an answer:
-
Alexey Litovchenko
Found the plugin useful on 11 Jan, 2017
Wow!
-
sheck
Found the plugin useful on 11 Jan, 2017
Great userful plugin!
-
Alwin Drenth author
Replied on 11 Jan, 2017
.
-
Jan Vince
Found the plugin useful on 21 Nov, 2016
Great plugin with many options and swift support!
-
sam
Found the plugin useful on 6 Oct, 2016
Good plugin, works great and good doc's! Big respect for this.
-
Alex Bass
Found the plugin useful on 29 Aug, 2016
Was using the nginx config to handle redirects before this plugin. Migrated servers over at one point and totally lost all of my redirects - drove me insane.
Having it managed inside of the website now is much better. This plugin couldn't be more simple to use and it is also nice now knowing how many times the URL has been accessed. This is one of those few "must have" plugins for OctoberCMS - Keep up the awesome work!
-
Found the plugin useful on 25 Jul, 2016
Great plugin and very fast support. I needed redirect handling relative to the october installation path (installation was in a subdirectory) and the author provided it within a day.
-
Denis Malinochkin
Found the plugin useful on 25 Jul, 2016
Great plugin for projects where you want to use redirection.
Отличный плагин для проектов, где требуется использовать редирект.
-
Mantas Šimkūnas
Found the plugin useful on 24 Jul, 2016
This is an essential plugin if you need to manage lots of redirects easily. The features work great, are easy to use and the support is excellent - the plugin author responded to my issue almost instantly and issued a bugfix release on the same day. I highly recommended this plugin.
-
Van der Let & Partners
Found the plugin useful on 27 Apr, 2016
A very complete and essential plugin for OctoberCMS. It contains all the features you'd except for a Redirect plugin.
-
Mark van den Elzen
Found the plugin useful on 7 Apr, 2016
I like this plugin a lot. Keep up the good work!
-
Jonathan Irwin
Found the plugin useful on 28 Mar, 2016
Awesome plugin. Works as advertised and looks great too.
-
Daniel Farina
Found the plugin useful on 25 Mar, 2016
This is a must have plugin.
Just remember, you must Publish the redirects in order for them to work, and you should only specify the /url not the http://www.webiste.com/url.
OctoberCMS is getting better every day!
Thank you Alwin!
-
Alwin Drenth author
Replied on 25 Mar, 2016
Hi Daniel. I've added some UI improvements to make things more understanding.
Also added a test tool so you can test your redirect before publishing them. See the updated version 1.0.3.
Please keep me updated about your experiences. Love to hear about it.
-
3.1.11 |
Add option to keep query string when redirecting. Nov 30, 2023 |
---|---|
3.1.10 |
Fixed backend filtering for MySQL >= 8.0.3. Sep 28, 2023 |
3.1.9 |
Added environment variables for manipulating the navigation. Jun 12, 2023 |
3.1.8 |
Add German translation. May 25, 2023 |
3.1.7 |
Remove use of old BrandSetting constants. Apr 19, 2023 |
3.1.6 |
Add support for October CMS 3.3. Mar 28, 2023 |
3.1.5 |
Minor improvements. See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/3.1.5 Mar 20, 2023 |
3.1.4 |
Fix target field not loading properly. See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/3.1.4 Feb 14, 2023 |
3.1.3 |
Maintenance release Jan 27, 2023 |
3.1.2 |
Fix daily stats labels when selecting month/year. Dec 09, 2022 |
3.1.1 |
Add description column to Redirects overview. Jun 24, 2022 |
3.1.0 |
Add support for October CMS 3.x. Drop support for October CMS 2.x. Jun 11, 2022 |
3.0.5 |
Lock to October CMS version 2.x. Support for October CMS 3 will be added in v3.1.0. Jun 11, 2022 |
3.0.4 |
Improved compatibility/extensibility with other Plugins. Apr 19, 2022 |
3.0.3 |
Update plugin dependencies Mar 16, 2022 |
3.0.2 |
Change version constraint for composer/installers. Feb 20, 2022 |
3.0.1 |
Add support for regular expression matches in target path. Feb 20, 2022 |
3.0.0 |
Drop support for October CMS 1.1 and lower. See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/3.0.0 Feb 19, 2022 |
2.6.0 |
Update plugin dependencies. Feb 19, 2022 |
2.5.13 |
Fix database error when cache is being cleared before installation of plugin. Feb 19, 2022 |
2.5.12 |
Fix strpos() type error Feb 19, 2022 |
2.5.11 |
Minor fixes -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/2.5.11 Aug 31, 2021 |
2.5.10 |
Add PHP 8.0 version constraint and composer/installers package Aug 31, 2021 |
2.5.9 |
Fix import in Plugin file Jul 09, 2021 |
2.5.8 |
Improve redirect caching management (revised) -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/2.5.8 Jul 09, 2021 |
2.5.7 |
Improve redirect caching management -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/2.5.7 Jul 08, 2021 |
2.5.5 |
Suppress logging when redirect rules file is empty -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/2.5.5 Sep 18, 2020 |
2.5.4 |
Add support for symfony/stopwatch:^5.0 (version 4.0 is still supported) -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/2.5.4 Aug 27, 2020 |
2.5.3 |
Improve / fixes redirect rule caching -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/2.5.3 Aug 18, 2020 |
2.5.2 |
Fix bug that causes re-writing the redirect rules file when hits are updated -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/2.5.2 Jun 16, 2020 |
2.5.1 |
Fixes issues with redirect rules file not being present -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/2.5.1 Jun 05, 2020 |
2.5.0 |
Add support for using relative paths -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/2.5.0 May 18, 2020 |
2.4.1 |
Add Redirect Extensions promo page -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/2.4.1 May 01, 2020 |
2.4.0 |
Skip requests with header 'X-Requested-With: XMLHttpRequest' -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/2.4.0 Apr 17, 2020 |
2.3.2 |
Improve error handling in plugin migration process -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/2.3.2 Apr 17, 2020 |
2.3.1 |
Fix SQLSTATE[42S22] error when installing plugin -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/2.3.1 Apr 16, 2020 |
2.3.0 |
Add new redirect options (ignore case and ignore trailing slash) -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/2.3.0 Apr 15, 2020 |
2.2.0 |
Add cache control header and UI improvements -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/2.2.0 Apr 10, 2020 |
2.1.1 |
Update CHANGELOG Apr 08, 2020 |
2.1.0 |
Added support for October CMS L6 build, improved caching and more -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/2.1.0 Apr 08, 2020 |
2.0.2 |
Minor database and configuration fixes -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/2.0.2 Apr 08, 2020 |
2.0.1 |
Fix Middleware not being invoked in newer PHP versions -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/2.0.1 Mar 30, 2020 |
2.0.0 |
Supports PHP 7.1.3 and higher. Read CHANGELOG.md -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/2.0.0 Mar 26, 2020 |
1.10.5 |
Fixes reported issues #46 and #49 -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/1.10.5 Mar 26, 2020 |
1.10.4 |
Fixes reported issues #41 and #43 -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/1.10.4 Jan 22, 2020 |
1.10.3 |
Fix support for Postgres -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/1.10.3 Dec 04, 2019 |
1.10.2 |
Fixes a fatal error when running TestLab -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/1.10.2 Oct 09, 2019 |
1.10.1 |
This fixes an issue where redirects will fail to work when the redirects.csv file does not have the write permission -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/1.10.1 Oct 04, 2019 |
1.10.0 |
Improve statistics performance -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/1.10.0 Sep 24, 2019 |
1.9.0 |
Add setting for enabling/disabling automatic creation of redirects -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/1.9.0 Jun 21, 2019 |
1.8.1 |
Fix critical issue regarding regular expression redirects May 24, 2019 |
1.8.0 |
Add CLI command for publishing redirects -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/1.8.0 Apr 25, 2019 |
1.7.0 |
Bugfixes and code improvements -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/1.7.0 Apr 18, 2019 |
1.6.0 |
Minor UI additions and added new Match Type: Regular Expressions! -- -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/1.6.0 Apr 04, 2019 |
1.5.0 |
Bugfixes and added more extensibility support -- See: https://github.com/vdlp/oc-redirect-plugin/releases/tag/1.5.0 Mar 14, 2019 |
1.4.5 |
Fixes critical issue with ignoring query parameters Jan 18, 2019 |
1.4.4 |
Fixes a redirect loop bug which might occur after renaming content pages. Jan 18, 2019 |
1.4.3 |
Fix thrown BindingResolutionException on redirecting Nov 18, 2018 |
1.4.2 |
Add extra statistics database index to improve performance (Statistics dashboard) Nov 17, 2018 |
1.4.1 |
Add extra statistics database index to improve performance Nov 17, 2018 |
1.4.0 |
Code dusting and improvements to the redirect list view Nov 16, 2018 |
1.3.0 |
Add support for ignoring query parameters -- See: https://github.com/vdlp/oc-redirect-plugin/issues/6 Oct 19, 2018 |
1.2.0 |
Add extra filters to the Redirects overview -- See: https://github.com/vdlp/oc-redirect-plugin/pull/5 Oct 19, 2018 |
1.1.0 |
Redirect rules are now being cached (if caching enabled) -- See: https://github.com/vdlp/oc-redirect-plugin/issues/1 Oct 19, 2018 |
1.0.0 |
Transfer vendor ownership. Adrenth.Redirect -> Vdlp.Redirect Aug 31, 2018 |
Upgrade Vdlp.Redirect 3.0.x to Vdlp.Redirect 3.1
- Drop support for October CMS 2.x and lower.
- Minimum required PHP version is now 8.0.2
Upgrade Vdlp.Redirect 2.0 to Vdlp.Redirect 3.0
- Drop support for October CMS 1.1 and lower.
- Minimum required PHP version is now 7.4
- Redirect to relative paths is now enabled by default.
- Add database relation to system request logs.
- When updating to
3.0.0
the tablevdlp_redirect_redirect_logs
will be removed due to schema changes. - Improvements to redirect request logs.
- Improvements to redirect conditions logic.
- Improvements to the statistics page.
- Redirect Settings:
- Relative paths setting is now enabled by default.
- Testlab (Beta) is now disabled by default.
- Redirect logging is now disabled by default.
- Redirect statistics is now disabled by default.
Upgrade Vdlp.Redirect 1.0 to Vdlp.Redirect 2.0
- Drop support for PHP 7.0, only supports PHP 7.1.3+.
- Most of the classes are made final. For extending use October CMS proposed solutions.
- Auto-redirect creation for CMS/Static pages has been removed from this plugin.
- The following events have been removed:
vdlp.redirects.changed
vdlp.redirect.beforeRedirectSave
vdlp.redirect.beforeRedirectUpdate
vdlp.redirect.afterRedirectUpdate
- New events:
vdlp.redirect.changed
Upgrade Adrenth.Redirect 4.0 to Vdlp.Redirect 1.0
If Adrenth.Redirect
plugin is installed, the database will be migrated automatically. Please make sure Adrenth.Redirect
plugin is installed while installing Vdlp.Redirect
.
This upgrade is supported with SQLite and MySQL databases. Other database platforms have not been tested.