Changed
- Nothing
Added
-
#1557 Added support to dynamically redirect to different long URLs based on the visitor's device type.
For the moment, only
android
,ios
anddesktop
can have their own specific long URL, and when the visitor cannot be matched against any of them, the regular long URL will be used.In the future, more granular device types could be added if appropriate (iOS tablet, android table, tablet, mobile phone, Linux, Mac, Windows, etc).
In order to match the visitor's device, the
User-Agent
header is used. -
#1632 Added amount of bots, non-bots and total visits to the visits summary endpoint.
-
#1633 Added amount of bots, non-bots and total visits to the tag stats endpoint.
-
#1653 Added support for all HTTP methods in short URLs, together with two new redirect status codes, 307 and 308.
Existing Shlink instances will continue to work the same. However, if you decide to set the redirect status codes as 307 or 308, Shlink will also return a redirect for short URLs even when the request method is different from
GET
.The status 308 is equivalent to 301, and 307 is equivalent to 302. The difference is that the spec requires the client to respect the original HTTP method when performing the redirect. With 301 and 302, some old clients might perform a
GET
request during the redirect, regardless the original request method. -
#1662 Added support to provide openswoole-specific config options via env vars prefixed with
OPENSWOOLE_
. -
#1389 and #706 Added support for case-insensitive short URLs.
In order to achieve this, a new env var/config option has been implemented (
SHORT_URL_MODE
), which allows eitherstrict
orloosely
.Default value is
strict
, but ifloosely
is provided, then short URLs will be matched in a case-insensitive way, and new short URLs will be generated with short-codes in lowercase only.
Removed
- Nothing
Fixed
- #1639 Fixed 500 error returned when request body is not valid JSON, instead of a proper descriptive error.