matusstafura / magento2-category-redirect
Universal category redirect module for Magento 2 - creates store-agnostic category links using category ID
Magento 2 Category Redirect Module
A Magento 2 module that creates universal, store-agnostic category links for multi-language and multi-store setups that redirect to the correct localized category URL based on the current store view.
This is useful when you need a single category link that works across all store views, such as in blog posts, email campaigns, or external marketing materials.
Example
- Universal link:
/category?id=124where124is the category ID for "Electronics".
You can use this link in any store view, and it will redirect to the appropriate localized category URL.
Problem Solved
When managing a Magento 2 multi-store setup with different languages, category URLs differ across stores:
- English:
/electronics.html - French:
/electronique.html - German:
/elektronik.html
Solves problems for blog posts, email campaigns, and any content where you need a single category link to work across all store views.
This module lets you use one universal link that automatically redirects to the correct localized category URL based on the current store.
Features
Store-agnostic category links - One link works across all languages
SEO-friendly 301 redirects - Passes link equity to final category URLs
Active category check - Only redirects to active categories
Zero configuration - Works immediately after installation
Magento 2.4.7 compatible - Uses modern HttpGetActionInterface
Lightweight - No database changes, no admin configuration
Requirements
- PHP >= 8.1
- Magento >= 2.4.7
- Composer (optional, for installation via composer)
Installation
Option 1: Composer Installation (Recommended)
composer require matusstafura/magento2-category-redirect
php bin/magento module:enable MatusStafura_CategoryRedirect
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento cache:flush
Option 2: Manual Installation
- Create module directory:
mkdir -p app/code/MatusStafura/CategoryRedirect
-
Copy all module files to
app/code/MatusStafura/CategoryRedirect/ -
Enable the module:
php bin/magento module:enable MatusStafura_CategoryRedirect
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento cache:flush
Usage
Create links using category ID:
<a href="/category?id=124">View Electronics</a>
<a href="/category?id=8">Shop Women's Clothing</a>
<a href="/category?id=15">Browse Sale Items</a>
Configuration
No configuration needed! The module works out of the box after installation.
Uninstallation
php bin/magento module:disable MatusStafura_CategoryRedirect
php bin/magento setup:upgrade
php bin/magento cache:flush
# Optionally remove module files
rm -rf app/code/MatusStafura/CategoryRedirect
Compatibility
- ✅ Magento 2.4.7
- ✅ Magento 2.4.6
- ✅ Magento 2.4.5
- ✅ PHP 8.1, 8.2, 8.3
License
MIT License - See LICENSE for details.
Support
For issues, questions, or contributions:
- Create an issue on GitHub
- Submit a pull request
- Contact the author
Contributing
Contributions are welcome! Please fork the repository and submit a pull request.
No changelog yet
The vendor hasn't published a changelog. Tagged releases appear in the Versions tab.
Requires 2
| Package | Constraint |
|---|---|
| magento/framework | >=103.0 |
| php | >=8.1 |
Compatibility
Each Magento release line is installed on its supported PHP versions, then the module is built (DI compilation + static-content deploy) and its unit and integration suites are run. The matrix shows the lines and PHP versions the module is confirmed to install and run on. Code-quality results further down (phpstan, phpcs, …) are reported separately and never affect compatibility.
Code Quality
Advisory checks against the module's source. Static analysis runs once across the whole module; PHPStan re-runs per Magento + PHP version because resolvable symbols differ between releases. These NEVER affect the Compatibility badge. A phpcs finding can't make a module incompatible.
Static analysis
Coding standards (phpcs), mess detection (phpmd), copy-pasted code (cpd), PHP cross-version compatibility, composer.json validity. Each runs once for the whole module.
PHPStan
Type-checks the module's PHP against a real Magento install at the configured gate level. Re-runs per Magento and PHP version because resolvable symbols differ between releases.
Tests
Unit and integration suites, run for each applicable Magento and PHP version. A test failure speaks to the module's behaviour, not its compatibility with a Magento line, so it is reported here separately and never reddens the compatibility matrix.
Unit tests
| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | N/A | N/A | ||
| 2.4.8 | N/A | N/A | ||
| 2.4.9 | N/A | N/A |
Integration tests
| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | N/A | N/A | ||
| 2.4.8 | N/A | N/A | ||
| 2.4.9 | N/A | N/A |
Security
Security checks run directly against the module: an audit of its declared dependencies for known vulnerabilities (composer audit) and a scan of its source for malware and web-shell signatures. Each runs once. A malware detection fails the version outright.
More from matusstafura
View vendorPhone validation for Magento 2
Vat Id input validation for Magento 2
Product redirect module for Magento 2 - creates store-agnostic product links using SKU or ID
Dev CLI tool to render Magento 2 transactional emails per store view, for spotting missing or untranslated content. Not intended for production use.
Turn an existing module into recurring revenue.
If you already maintain a Magento 2 module on GitHub or GitLab, listing it on Packagento takes about five minutes. We mirror your tags, handle distribution signing, and route paid licenses through Stripe Connect, so you can keep shipping the way you already do.