Retour
Version 4.1.13
August 15, 2023
Added
- Add db index for
redirectMatchType
to help with query performance (#282)
Changed
- Add permission fallback logic to the dashboard for Short Links access
Security
- Fixed a potential XSS vulnerability with a malformed
referrer
header
Version 4.1.12
April 7, 2023
Changed
- Enforce full URL matching for short links when used within a multi-site setup and enabling any of the content translation method for the field. (#277)
Fixed
Version 4.1.11
March 7, 2023
Added
- Added the ability to disable statistics recording entirely via
enableStatistics
in theconfig.php
(#272)
Changed
- Add versioning to the docs
Fixed
Version 4.1.10
February 9, 2023
Changed
- Use dynamic docker container name & port for the
buildchain
- Update the
buildchain
to use Vite^4.0.0
- Refactored the docs buildchain to use a dynamic docker container setup
Fixed
- Fixed an issue with the rebuild indexes migration (#269)
Version 4.1.9
December 8, 2022
Fixed
- Added missing
priority
column to theretour_static_redirects
too, inInstall.php
migration (#262)
Version 4.1.8
December 7, 2022
Fixed
- Added missing
priority
column to theInstall.php
migration (#262)
Version 4.1.6
November 28, 2022
Added
- Added
EVENT_BEFORE_DELETE_REDIRECT
&EVENT_AFTER_DELETE_REDIRECT
events, so you can hook in before & after a redirect is deleted (#259)
Changed
- Updated docs to use VitePress
^1.0.0-alpha.29
Fixed
- Fixed an issue with the console command throwing an exception due to an uninitialized typed property (#257)
Version 4.1.5
November 3, 2022
Changed
- Fixed HMR in local dev with explicit alias that resolves to the actual directory
- Add
import.meta.hot.accept
for entrypoint JavaScript for HMR
Fixed
- Fixed an issue where the default value for
redirectHttpCode
would cause a validation error to be displayed when creating a new static redirect (#255) - Fixed an issue where the default value for
redirectHttpCode
would cause importing a CSV file to fail if noredirectHttpCode
was provided in the CSV file (#253)
Version 4.1.3
September 14, 2022
Changed
- Fixed an issue where element types that update their
uriFormat
directly rather than re-saving the elements will generate automatic element redirects (#248) - Updated how Retour's components are registered, to allow for overriding via plugin config (#1989) (#11039)
- Update the buildchain to use Vite
^3.1.0
for building frontend assets
Version 4.1.2
September 8, 2022
Changed
- Whether a Short Link redirect is created for "All Sites" or on a per-site basis is now determined by the propagation method of the Short Link field
- Include "Short Link Element ID" in the CSV redirects export
- Allow for the localization of the exported redirects & statistics column names
Fixed
- Fix improperly named field input template (casing) (#247)
- Editing a Short Link field's redirect in the CP now properly preserves its Short Link status, and redirects to the Short Links page
Version 4.1.1
September 2, 2022
Fixed
- Fixed an issue that could cause redirects to not function as expected (#245)
Version 4.1.0
August 30, 2022
Added
- Added the Short Link field type that allows content authors to add short link redirects in an entry
- Added translations in the Javascript views that Retour uses, allowing for better localization (#222)
- If a CSV import has errors, they are displayed on the frontend to make them easier to diagnose (#219)
Changed
Version 4.0.2
June 22, 2022
Changed
- Removed the sub resource integrity on the built JavaScript, which could fail if systems were set up that manipulated the incoming JavaScript resources dynamically (#229)
Version 4.0.1
May 31, 2022
Fixed
- Fixed a "must not be accessed before initialization" error that could occur using GraphQL (#238)
Version 4.0.0
May 18, 2022
Added
- Initial release for Craft CMS 4
Fixed
Version 4.0.0-beta.4
April 9, 2022
Changed
- No longer trim
/
from URLs that are presented in the Retour Dashboard (#227) - Remove deprecated CraftQL support
- Remove unneeded feature checks based on Craft 3.x versions
Fixed
- Fixed an issue where an exception could be thrown in production due to incompatible types
Version 4.0.0-beta.3
March 18, 2022
Fixed
- Fix registering permissions (#224)
Version 4.0.0-beta.2
March 4, 2022
Fixed
- Updated types for Craft CMS
4.0.0-alpha.1
via Rector
Version 4.0.0-beta.1
February 7, 2022
Added
- Initial Craft CMS 4 compatibility
Version 3.1.70
January 17, 2022
Fixed
- Fixed a regression which would cause the 404 File Not Found URL to not be displayed
Version 3.1.69
January 12, 2022
Added
- Add
.gitattributes
&CODEOWNERS
- Add linting to build
- Add compression of assets
- Add bundle visualizer
Version 3.1.68
December 26, 2021
Added
- Added the ability to add 307 - Temporary Redirect and 308 - Permanent Redirect status code redirects (#216)
- Added the ability to pass in a
site
handle via GraphQL toretourRedirects()
orretourResolveRedirect()
(#215) - Return the
site
handle via GraphQL from queries toretourRedirects()
orretourResolveRedirect()
(#215)
Changed
- Updated the buildchain to use Node 16
- Changed buildchain to Vite from webpack 5
Fixed
Version 3.1.67
November 16, 2021
Added
- Added the
retourResolveRedirect
GraphQL query that should be used instead of theretour
query. - Added the
retourRedirects
GraphQL query that returns a list of all redirects for a given site.
Changed
- The
retour
GraphQL query is now deprecated in favor of theretourResolveRedirect
query.
Version 3.1.66
November 10, 2021
Version 3.1.65
October 29, 2021
Fixed
- Fixed a regression that could throw an exception during automatic Entry Redirect creation
Version 3.1.63
October 25, 2021
Added
- Added a
$siteId
property toRedirectEvent
,RedirectResolvedEvent
, andResolveRedirectEvent
to allow for custom logic based on thesiteId
(#202)
Version 3.1.60
August 17, 2021
Security
- Fixed a potential XSS vulnerability with a malformed Referrer header
Version 3.1.59
August 13, 2021
Fixed
- Fix an issue where
Undefined class constant ‘EVENT_REGISTER_GQL_SCHEMA_COMPONENTS
would be thrown if you were running Craft CMS <^3.5.0
(#198)
Version 3.1.58
August 4, 2021
Added
- Use the delimiter between data column setting (normally
,
) for exporting CSV files, too (#194)
Changed
- Ensure the URLs are siteUrls and not cpUrls in the Dashboard table “go” arrow (#192)
Fixed
- Fixed an issue where the saved component state could cause it to not display redirects after deleting one while filtering the view (#196) *
Version 3.1.57
July 8, 2021
Fixed
- Ignore the
numSelected
andselectedIds
properties for the Dashboard Table component's save state (#191)
Version 3.1.56
July 7, 2021
Added
- Added "Per-age" pagination controls for the Redirects page
- Added “500” option to Dashboard stats & Redirects "Per-page"
Fixed
Version 3.1.55
July 2, 2021
Added
- Added The delimiter between data column values for importing CSV files (
normally
,
) (#188) - Allow the choice of how many statistics per-page to display (#185)
- Both the Dashboard Statistics table and the Redirects Table now remember their state (#189)
Changed
- If the redirectSrcUrl starts with
http
, default the match type tofullurl
(#187) - Update the 404 statistics for the path including the query string, if it hasn't been stripped (#189)
Fixed
- Fix missing use clause
Version 3.1.54
June 12, 2021
Added
- Add GraphQL schema components for Retour.
Changed
- Ensure that the URI doesn't match an element URI before incrementing the 404 statistics via GraphQL query (#177)
- Switched documentation system to VitePress
Version 3.1.52
April 6, 2021
Added
- Added
make update
to update NPM packages - Added
make update-clean
to completely removenode_modules/
, then update NPM packages
Changed
- Use Tailwind CSS
^2.1.0
with JIT
Version 3.1.51
March 29, 2021
Changed
- Move the manifest service registration to the constructor
Fixed
- Fixed an issue where the CSV import wouldn't work if you were using Composer 1.x, due to package version detection issues
Version 3.1.50
March 27, 2021
Changed
- Allow for automatic redirect creation during bulk resaving operations
- More consistent
makefile
build commands - Use Tailwind 2.x &
@tailwindcss/jit
- Move settings from the
composer.json
“extra” to the plugin main class
Fixed
- URL decode any Legacy URLs for any Exact Match redirects on save (#166)
Version 3.1.49
March 3, 2021
Changed
- Dockerized the buildchain, using
craft-plugin-manifest
for the webpack HMR bridge
Version 3.1.48
February 27, 2021
Added
- Added support for both 8.x and 9.x versions of
league/csv
for peer compatibility - PHP 8 compatibility for the import/export functions via
league/csv
version^9.0
Changed
- Ensure the URLs are siteUrls and not cpUrls in the Redirects table “go” arrow
Version 3.1.47
February 22, 2021
Changed
- Updated build system infra
Fixed
- Fixed an issue where 404 stats for pages without redirects in place do not increment via GraphQL
Version 3.1.46
February 2, 2021
Changed
- Updated Axios to
^0.21.1
- Updated to latest npm deps
- Rebuilt frontend assets
Fixed
- Fixed an issue that could cause migration issues from Craft 2 to Craft 3.6,
use
Use MigrationHelper::dropIndexIfExists()
Version 3.1.45
December 10, 2020
Changed
- Split out vendors & commons chunks
- Check for both types of preview requests on Craft 3.2 or later
- Invalidate Retour's caches when a redirect is saved
- Also invalidate the GraphQL caches on Craft CMS 3.3 or later if a Redirect is saved
Fixed
- If a redirect is modified by a plugin event, save the changed redirect to the cache
- Handle no
siteId
being passed into a GraphQL query properly, by defaulting to either the current site, or the primary site - Fixed an issue where the Dashboard filter didn’t work in combination with Handled / Not Handled
Version 3.1.44
December 8, 2020
Changed
- Moved the CSS/JS buildchain over to webpack 5
- Updated to latest npm deps
Version 3.1.43
December 4, 2020
Changed
- Don't add slashes to destination URLs that contain a query string, regardless of the
addTrailingSlashesToUrls
setting
Version 3.1.42
October 4, 2020
Changed
- Rebuilt CP assets using latest deps
- Refactored to use
registerJsModules
macro for JS CP assets
Fixed
- Fixed an issue that added a
/
to Reg Ex match destination URLs if you had theaddTrailingSlashesToUrls
General Config setting set totrue
Version 3.1.41
July 30, 2020
Fixed
- Added
craftcms/cms
back in as a dependency so Craft sees updates to the plugin again
Changed
- Overwrite existing headers rather than adding to them with the Additional Headers setting
Version 3.1.40
July 5, 2020
Added
- Added the Codeception testing framework to SEOmatic
- Added a Unit Test to Retour that executes on every push to GitHub to verify there are no regressions for (#110)
- Added the ability to import “hits” into a redirect
- Added a
EVENT_REDIRECT_RESOLVED
to allow plugins/modules to modify redirects that have been resolved. - Added an “Additional Headers” setting that allows you to define additional headers that are added to the redirect response
Fixed
- Fixed an issue where really long ALL CAPS column names would cause the Import UI to wrap
Version 3.1.39
June 8, 2020
Added
- Added an API endpoint to allow the fetching of all of the Retour Redirects
Version 3.1.38
April 12, 2020
Fixed
- Also explicitly remove
\n
and\r
characters that might be in the redirected URL
Version 3.1.37
April 2, 2020
Fixed
- Explicitly remove any newline characters that might be in the redirected URL
- Fixed an issue with the Dashboard Widget link not being right in certain configs
Changed
- Updated to latest npm dependencies via
npm audit fix
for both the primary app and the docs
Version 3.1.36
March 24, 2020
Fixed
- Fixed an issue where
$siteId
might not be typecast properly when coming from the database, causing PHP to throw an error - Replaced the simple
//
->/
replacement with a regex, to fix an issue that could inadvertently affect the protocol portion of a destination URL
Version 3.1.35
March 16, 2020
Fixed
- Fixes an issue where
UrlHelper::sanitizeUrl()
would return an empty string
Version 3.1.34
March 12, 2020
Fixed
- Handle sanitizing URLs that have special characters such as
ü
in them - Remove any double slashes from resolved RegEx redirects
Version 3.1.33
January 10, 2020
Fixed
- Fixed an issue with the migration that happened for sites that were upgraded from Craft 2.x
Version 3.1.32
January 9, 2020
Added
- Added URL sanitization to the redirect URL that Retour passes to
$response->redirect()
- If
addTrailingSlashesToUrls
is set, add a slash to the end of Destination URL if the URL is a site URL - Added indexes for
redirectSrcUrl
in all tables to make queries perform better
Version 3.1.31
December 11, 2019
Security
- Throw an exception if an invalid sort field is passed into the controller methods, to eliminate a low-impact SQL injection vulnerability
Version 3.1.30
December 9, 2019
Added
- Added the ability to use reference tags in the Destination URL
Fixed
- Fixed a low-impact SQL injection vulnerability
Version 3.1.29
November 18, 2019
Changed
- Added a
try
/catch
around regular expression parsing to gracefully handle malformed input - Log invalid regex's to
web.log
Fixed
- Fixed an issue where deleting statistics could throw an error
Version 3.1.28
November 11, 2019
Added
- Added the ability to bulk delete Statistics & Redirects
- Added the ability to display only handled or not handled statistics
Version 3.1.27
October 24, 2019
Changed
- Added a CSV import field for Legacy URL Match Type
- Cleaned up the GraphQL type generator
Version 3.1.26
October 7, 2019
Changed
- Added native GraphQL support
Version 3.1.25
September 27, 2019
Changed
- Fixed an issue where the enabled/disabled status of a redirect wasn't correctly shown in the list view
- Fixed an issue where the IP address lookup was no longer working
- Added Sites to the Redirects table listing
Version 3.1.24
September 9, 2019
Changed
- Replaced frontend api route with an actionUrl()
Version 3.1.23
August 21, 2019
Added
- Added a Entry Redirects URL Match Type setting so that full URLs can be used for the automatic Entry Redirects if
you have a site that has a sub-directory as part of the
siteUrl
Changed
- Updated assets build to update to the latest npm packages
Version 3.1.22
July 18, 2019
Changed
- Proper fix for an issue that would cause uploading assets on Craft 3.2 to fail with "Asset is missing its folder ID"
Version 3.1.21
July 18, 2019
Changed
- Removed the pointless language switcher from the Import CSV File template
- Fixed an issue that would cause uploading assets on Craft 3.2 to fail with "Asset is missing its folder ID"
Version 3.1.20
July 17, 2019
Changed
- Fixed a regression that could throw an exception when an entry's slug is changed on pre-Craft 3.2
Version 3.1.19
July 17, 2019
Changed
- Fixed an issue where a spurious redirect was created for new entries on Craft 3.2 if Create Entry Redirects is enabled
Version 3.1.18
July 15, 2019
Added
- Added a
ResolveRedirectEvent
that modules/plugins can listen to if they want to resolve their own redirects
Changed
- Store uploaded CSV files in the cache, as a fallback method to accessing it
- Handle
addTrailingSlashesToUrls
config setting for automatic slug change redirects
Version 3.1.17
July 10, 2019
Changed
- Do not try to create automatic redirects for drafts and revisions in Craft 3.2 or later
Version 3.1.16
June 12, 2019
Added
- Added GraphQL support so SPAs can give their content authors a way to manage 404s via the CP
Changed
- Updated to Tailwind CSS
^1.0.0
- Updated to the latest ApexCharts, fixed issues due to changed APIs
- Fixed an issue with really long field titles overflowing the Import CSV File UI
Version 3.1.15
May 21, 2019
Changed
- Updated build system
Version 3.1.14
May 2, 2019
Changed
- Added a Statistics Trimming Rate Limit that defaults to once per hour, to prevent the statistics trimming from impacting performance
Version 3.1.13
April 30, 2019
Changed
- Fixed an issue with the widget icon not showing up properly
- Fixed an issue with non-admin users being unable to export statistics
Version 3.1.12
April 25, 2019
Changed
- Fixes an issue where Retour would delete the first redirect with a
null
siteId, when saving a new redirect withsiteId
set
Version 3.1.11
April 22, 2019
Changed
- Updated Twig namespacing to be compliant with deprecated class aliases in 2.7.x
Version 3.1.10
April 18, 2019
Changed
- Make sure the URL we redirect to is a full URL, and is based on the defined
siteUrl
- Migration for Retour widgets
- Added a Dashboard Refresh Interval control to let people choose the refresh interval (or disable it)
- Ensure the user has permission for a given site to be able to edit redirects for it
Version 3.1.9
April 9, 2019
Changed
- Fixed an issue where an empty Exclude Patterns table and the use of Project Config on Craft 3.1 or later could cause an exception to be thrown when a 404 is thrown
Version 3.1.8
April 2, 2019
Added
- Added the ability to exclude URIs from Retour completely via a series of RegEx
Changed
- If Preserve Query String is on, make sure the path
p=
isn't part of it - Don't log stats update errors, because it's pointless, and can report meaningless deadlock errors
- Ensure that a user has permission to access a site group to redirect something to it
- Fixed an issue where automatic redirects based on renamed entries didn't create the redirect for the right
siteId
in multi-site setups
Version 3.1.7
March 20, 2019
Changed
- Fixed an issue with pagination of statistics and redirects when limiting them to a specific site
- Don't allow editing of the plugin settings if
allowAdminChanges
is false - Record the user IP instead of Proxy IP
- Disable "Redirect To" link when there is a token in the destination url
- Display an error when a redirect is not saved because it'd create a redirect loop
Version 3.1.6
February 4, 2019
Changed
- Reverted the semver on
league/csv
back to^8.2
due to incompatible APIs - Fixed an issue with a missing Dashboard icon
Version 3.1.5
January 23, 2019
Changed
- Updated the semver on
league/csv
to^8.2|^9.1
Version 3.1.4
January 18, 2019
Changed
- Fixed the breadcrumbs in the CP to respect the currently selected site
Version 3.1.3
January 10, 2019
Changed
- Fixed an issue where the live reload of 404 data would cause the pagination to reset to viewing the first page
Version 3.1.2
January 3, 2019
Changed
- Register cache options for every type of request
- Added
beforeSaveRedirect
andbeforeSaveRedirect
events for plugin/module or Webhooks plugin use
Version 3.1.1
December 19, 2018
Changed
- For multi-site setups, auto-create slug redirects for the element's site only
- Fixed a minor JavaScript issue visible only in
webpack-dev-server
- Updated the PostCSS build packages & config
Version 3.1.0
December 17, 2018
Added
- Added the ability to have true multi-site capabilities, with redirects that only affect specific sites
- Added live refresh of the Dashboard data
Version 3.0.18
November 23, 2018
Changed
- Fixed an issue with the charts controller for the Widget charts on Postgres
- Fixed an issue in Statistics.php with Postgres
Version 3.0.17
November 5, 2018
Changed
- Fix missing welcome icon
Version 3.0.16
November 4, 2018
Changed
- Fixed an issue with
trimStatistics()
if you're using Postgres - Retooled the JavaScript build system to be more compatible with edge case server setups
Version 3.0.15
October 29, 2018
Changed
- Handle a Retour return status > 400 to render the actual error template
- Fixed a console error in the Dashboard if no data was returned for a chart
- Updated the build system
Version 3.0.14
October 18, 2018
Version 3.0.13
October 17, 2018
Changed
- Fixed an issue where the charts wouldn't generate properly if you were using MySQL 5.7 or later
- Fixed an issue with the charts not generating properly if you were using Postgres
- Fixed a padding issue with the widget chart
Version 3.0.12
October 14, 2018
Added
- Added the ability to redirect based on Path Only or Full URL, to allow for site-specific redirects
- Added Legacy URL Match Type and Remote IP to the import and export fields
Changed
- Trimmed the database tables to be more storage space efficient
Version 3.0.11
October 13, 2018
Added
- Added Remote IP to the Dashboard statistics, with a link to look up a geo-location
- Added config setting for Record Remote IP
Changed
- Fixed an issue where the search function wouldn't work in the Control Panel if you were using Postgres
- Fixed incorrect links to the documentation
- Fixed an issue where a user with the proper permissions could not save a new redirect
- Fixed the build process so it will no longer look for
devServer
on installs
Version 3.0.10
October 5, 2018
Changed
- Updated build process
Version 3.0.9
September 24, 2018
Changed
- Modernized package.json and webpack build
Version 3.0.8
September 20, 2018
Changed
- Fixed a regression that caused you to be unable to click on a redirect to edit it
- Added automatic manifest cache invalidation
Version 3.0.7
September 19, 2018
Added
- Added a
retour/stats/trim
console command to manually trim the statistics table
Changed
- Added an Automatically Trim Statistics option (defaults to
true
) in Settings andconfig.php
Version 3.0.6
September 18, 2018
Changed
- Fixed an issue when creating new redirects on a Postgres database
- Fixed a cosmetic issue where RegEx's with a
|
in them were not displayed correctly in the table - Fixed an issue where the
+
add button didn't work right on some configurations
Version 3.0.5
September 14, 2018
Changed
- Fixed an error with multi-site when an element existed on one site, but not the main site
Version 3.0.4
September 13, 2018
Changed
- Fixed an issue where RegEx redirects would have the Destination URL overwritten by the parsed result after a hit
- Fixed an issue where cached resolved redirects would not increment statistics
Version 3.0.3
September 13, 2018
Added
- Added documentation for User Group based Permissions in Retour
Changed
- Fixed an issue with line endings for CSV files that were generated by Mac computers
Version 3.0.2
September 12, 2018
Changed
- Fixed issues with the
+
andx
URLs in the Control Panel not working as intended
Version 3.0.1
September 12, 2018
Changed
- Fixed the CSV importer to it imports more than just the first entry in the CSV
Version 3.0.0
September 12, 2018
Added
- Initial release