de-swebhosting-typo3-extension / tinyurls
This extensions allows you to cut down long URLs. It basically works like bitly or TinyURL.
Package info
github.com/astehlik/typo3-extension-tinyurls
Type:typo3-cms-extension
pkg:composer/de-swebhosting-typo3-extension/tinyurls
Requires
- php: ^8.2
- typo3/cms-core: ~14.3.0
- typo3/cms-redirects: ~14.3.0
Requires (Dev)
- de-swebhosting/typo3-extension-buildtools: dev-TYPO3_14
- m12r/typo3scan: dev-master as 1.7.99
- phpunit/phpunit: ^11.5.33
README
Warning
This extension is deprecated for TYPO3 14+ as the core now includes a native Short URL feature.
To migrate your existing records to core redirects, see Migrating to core redirects below (will become available with the v14 release of this Extension).
If you believe this extension still offers unique value, I'd love to hear from you. Please open a ticket to share your feedback.
This is a TYPO3 Extension for converting a normal URL to a tiny URL.
It works similar as services provided by https://bitly.com/ or https://tinyurl.com/.
Have a look in the Documentation folder for more information or
browse to these URLs:
Migrating to core redirects
The tinyurls:migrate-to-redirects CLI command converts your existing tiny URL records into
sys_redirect records, so that you can stop relying on this extension.
Always start with a dry run to see what would happen, without changing anything:
vendor/bin/typo3 tinyurls:migrate-to-redirects --pid <storage-pid> --dry-run
Then run it for real:
vendor/bin/typo3 tinyurls:migrate-to-redirects --pid <storage-pid>
The command is safe to run multiple times — records that were already migrated are skipped.
Already-expired tiny URLs are migrated too (with the same expiry date set on the redirect via
endtime), so it is up to you whether to delete them afterward. One-time-use tiny URLs
(delete_on_use) are skipped, as redirects have no equivalent for "delete after first hit".
If speaking URLs are enabled and a usable speakingUrlTemplate is configured, --url-template
defaults to a path derived from it, so you usually don't need to set it explicitly. Otherwise
you must pass --url-template yourself — there is no silent guessed fallback.
For the full picture — all available options (--host, --url-template, --target-pid),
what exactly gets migrated or skipped, and a recommended step-by-step workflow — see the
migration guide in the Documentation
folder.