PHPackages                             mage2kishan/module-redirects - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. mage2kishan/module-redirects

ActiveMagento2-module[Utility &amp; Helpers](/categories/utility)

mage2kishan/module-redirects
============================

Redirects and 404 management for Magento 2 (Hyva + Luma). Manual + auto redirects, bulk CSV import/export, scheduled cleanup, 404 logging and cluster analysis for redirect recommendations. Extracted from Panth\_AdvancedSEO for independent installation.

1.0.4(1mo ago)019↓50%1proprietaryPHPPHP ~8.1.0||~8.2.0||~8.3.0||~8.4.0

Since Apr 20Pushed yesterdayCompare

[ Source](https://github.com/mage2sk/module-redirects)[ Packagist](https://packagist.org/packages/mage2kishan/module-redirects)[ RSS](/packages/mage2kishan-module-redirects/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (7)Versions (6)Used By (0)

Panth Redirects — 301/302 Redirects &amp; 404 Logger for Magento 2 (Hyva + Luma)
================================================================================

[](#panth-redirects--301302-redirects--404-logger-for-magento-2-hyva--luma)

[![Magento 2.4.4 - 2.4.8](https://camo.githubusercontent.com/079c832211eed4f9451ebe264e3865f825b0f9f31b041cbf03676c6e254535d4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6167656e746f2d322e342e342532302d2d253230322e342e382d6f72616e67653f6c6f676f3d6d6167656e746f266c6f676f436f6c6f723d7768697465)](https://magento.com)[![PHP 8.1 - 8.4](https://camo.githubusercontent.com/56b3cce18841623e2cbed2ebf09b06be1be8807e99e6e054a89d304ab4790b8e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e312532302d2d253230382e342d626c75653f6c6f676f3d706870266c6f676f436f6c6f723d7768697465)](https://php.net)[![Hyva Compatible](https://camo.githubusercontent.com/14365166e02048aff917dd0a015feecdae28499fbde05fa17abd4f7821ea1139/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f487976612d436f6d70617469626c652d3134623861363f6c6f676f3d616c70696e65646f746a73266c6f676f436f6c6f723d7768697465)](https://hyva.io)![Luma Compatible](https://camo.githubusercontent.com/3c1945ee121ef64870a6f3583c91ffdfb4d8ffc35809e7ce34ca549a357e1ded/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c756d612d436f6d70617469626c652d6f72616e6765)[![Packagist](https://camo.githubusercontent.com/f5e2eb4d5796b232aeed4860bfebb5f4161400faec382271a6146f333f3d43c1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5061636b61676973742d6d616765326b697368616e2532466d6f64756c652d2d7265646972656374732d6f72616e67653f6c6f676f3d7061636b6167697374266c6f676f436f6c6f723d7768697465)](https://packagist.org/packages/mage2kishan/module-redirects)[![Upwork Top Rated Plus](https://camo.githubusercontent.com/6f72584179420c41ed90432fd2579a4ed36199d4229e8181d20f353c1c4ee4eb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5570776f726b2d546f702532305261746564253230506c75732d3134613830303f6c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465)](https://www.upwork.com/freelancers/~016dd1767321100e21)[![Website](https://camo.githubusercontent.com/f1ae86d28e2b505aee60f240d3e5508e390b0a8dc7a9b7ecf1b450fad862053f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f576562736974652d6b697368616e736176616c6979612e636f6d2d304439343838)](https://kishansavaliya.com)[![Get a Quote](https://camo.githubusercontent.com/0b6c02cc1ad00f11bf1b0164a9998734bd716473db36cc2a5c1517e3d3578d1b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4765742532306125323051756f74652d46726565253230457374696d6174652d444332363236)](https://kishansavaliya.com/get-quote)

> **Complete redirect and 404 management for Magento 2.** Declare a literal or regex rule in the admin, or let the module auto-create a 301 the moment a product, category or CMS page is deleted. Every URL request is checked against the Matcher before Magento's own routing, so live redirects never 404 first. Bulk-load rules from CSV with loop detection, export them back, schedule a cleanup cron, and let the 404 logger + cluster analyser surface the dead-link patterns that actually need a redirect. Works identically on **Hyva** and **Luma**.

Redirect hygiene is one of the highest-leverage on-site SEO signals a store owns — but in native Magento it lives across three different places (catalog URL rewrites, CMS URL rewrites, `.htaccess`) and has no 404 visibility at all. **Panth Redirects** unifies it in a single admin surface with full HTTP status-code coverage, CSV tooling, and the observability needed to keep the rule set clean as the catalogue churns.

---

Need Custom Magento 2 Development?
----------------------------------

[](#need-custom-magento-2-development)

 [ ![Get a Free Quote](https://camo.githubusercontent.com/eac8c45d21cff8b139ddc392325f3bd6c8266a6f3d7b23f15131c958f3d3c8d0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f476574253230612532304672656525323051756f74652532302545322538362539322d5265706c7925323077697468696e2532303234253230686f7572732d4443323632363f7374796c653d666f722d7468652d6261646765) ](https://kishansavaliya.com/get-quote)

### Kishan Savaliya

[](#kishan-savaliya)

**Top Rated Plus on Upwork**

[![Hire on Upwork](https://camo.githubusercontent.com/b69353d3c6e192f4d03cc36bb8883612004e32f54dd2dbcc1e700dd791acd875/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f486972652532306f6e2532305570776f726b2d546f702532305261746564253230506c75732d3134613830303f7374796c653d666f722d7468652d6261646765266c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465)](https://www.upwork.com/freelancers/~016dd1767321100e21)

### Panth Infotech Agency

[](#panth-infotech-agency)

[![Visit Agency](https://camo.githubusercontent.com/bbf04bdd2aff502082508568ec42ace3a7475c98756f596e2013056c89726ed6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f56697369742532304167656e63792d50616e7468253230496e666f746563682d3134613830303f7374796c653d666f722d7468652d6261646765266c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465)](https://www.upwork.com/agencies/1881421506131960778/)

---

Table of Contents
-----------------

[](#table-of-contents)

- [Preview](#preview)
- [Features](#features)
- [How It Works](#how-it-works)
- [Supported HTTP Status Codes](#supported-http-status-codes)
- [Compatibility](#compatibility)
- [Installation](#installation)
- [Configuration](#configuration)
- [Managing Redirects](#managing-redirects)
- [CSV Import / Export](#csv-import--export)
- [404 Log &amp; Cluster Analysis](#404-log--cluster-analysis)
- [Security](#security)
- [Troubleshooting](#troubleshooting)
- [Support](#support)

---

Preview
-------

[](#preview)

### Live walkthrough

[](#live-walkthrough)

End-to-end admin flow — land on the dashboard, open **Panth Infotech → Manage Redirects**, add a rule, save, import a CSV, review the 404 log and the 404 cluster view.

[![Panth Redirects demo](docs/images/demo.gif)](docs/images/demo.gif)

### Admin

[](#admin)

**Redirects grid** — every rule at a glance with colour-coded status codes, match type, store scope, per-row hit counter and scheduling window. Import CSV, Export CSV, and Add Redirect are one click away.

[![Redirects grid](docs/images/02-redirects-grid.png)](docs/images/02-redirects-grid.png)

**Edit form — Literal 301** — map `/hyva-only` to `/about-us` at store-view scope with priority 10 and no scheduling restriction.

[![Edit Redirect — Literal 301](docs/images/04-edit-permanent.png)](docs/images/04-edit-permanent.png)

**Edit form — Maintenance 503** — serve `We are offline for maintenance. Please try again later.` with HTTP 503 + `Retry-After: 3600` when the match fires. The **Redirect Type** dropdown offers the full set of supported codes.

[![Edit Redirect — Maintenance 503](docs/images/03-edit-maintenance.png)](docs/images/03-edit-maintenance.png)

**CSV Import** — upload a header-first CSV to bulk-import redirects. A **Download sample CSV** link emits a ready-to-edit template with one row per supported match type so the column order and value shape are obvious before you upload.

[![Import Redirects from CSV](docs/images/01-import-csv.png)](docs/images/01-import-csv.png)

**404 Log** — every unmatched URL, de-duplicated by `(store_id, sha256(path))`, with referer, user-agent, hit count and first/last-seen timestamps.

[![404 Log](docs/images/05-404-log.png)](docs/images/05-404-log.png)

**404 Clusters** — the clustering cron walks the last seven days of 404 hits, collapses `/broken/page-1`, `/broken/page-2`, … into `/broken/page-{n}` and writes the top offenders with sample URLs so a single redirect rule can clean up an entire family of dead links.

[![404 Clusters](docs/images/06-404-clusters.png)](docs/images/06-404-clusters.png)

---

Features
--------

[](#features)

FeatureDescription**Three match types**`literal` (exact path), `regex` (with back-reference expansion into the target), and `maintenance` (returns HTTP 503 with the Target field as the response body).**Full HTTP status code picker**301, 302, 303, 307, 308, 410, 451, 503 — all eight codes are shared by the admin form, the Save validator, and the CSV importer via one source model.**Smart dispatcher**3xx codes emit a proper `Location` header; 410/451 serve the status + body without a bogus redirect; 503 adds `Retry-After: 3600`.**Auto-create 301 on delete**Product, category and CMS page deletes trigger a 301 rule pointing to parent-category / homepage / admin-configured custom URL. Each target is validated against open-redirect and path-traversal at write time.**CSV import / export**Loop detection, formula-injection stripping, dangerous-URI-scheme blocklist, validated match types and status codes, dry-run mode.**CLI import**`bin/magento panth:redirects:import file.csv [--dry-run]` for deployment pipelines.**404 logger**Per-IP rate limit (APCu when available; per-worker fallback otherwise), de-duplicated on `(store_id, sha256(path))`. Referer and user-agent are escaped on render so a hostile value can never XSS an admin.**404 cluster cron**Aggregates seven days of 404 traffic by normalised pattern and writes the top offenders — pick a cluster, create one regex rule, clear the long tail.**Redirect cleanup cron**Deletes expired scheduled redirects and auto-generated rules that have never been hit. Admin-curated rows are never removed.**Per-store scoping**`store_id = 0` rules apply everywhere; non-zero rules are scoped to a specific store view.**Priority**Lower numbers win when two literal rules share the same normalised pattern.**Scheduling**Optional `Active From` / `Active Until` per rule — ideal for seasonal sales or planned migrations.**RedirectGuard**Every request is vetted first: non-GET, AJAX, admin, API (`/rest/`, `/soap/`, `/graphql`), and static-asset prefixes (`/static/`, `/media/`) are skipped before the Matcher runs.**Mass actions**Enable, disable or delete many rules at once from the grid.---

How It Works
------------

[](#how-it-works)

Six cooperating pieces:

1. **Redirects grid** at `panth_redirects/redirect/index` — standard UI-component listing backed by the `panth_seo_redirect` table with the colour-coded status-code column.
2. **Admin form** at `panth_redirects/redirect/edit/id/` — `Match Type` switches between Literal / Regex / Maintenance; `Redirect Type` is populated from `Panth\Redirects\Model\Config\Source\StatusCode`, the single source of truth for allowed codes.
3. **`Matcher`** — two-tier lookup. Tier 1 is a hash table for literal paths (O(1)). Tier 2 is a priority-ordered regex list (linear). Loaded once per request, cached in Magento cache under tag `panth_redirects_table`, invalidated on rule save / import / cron.
4. **`Predispatch` observer** on `controller_action_predispatch` — consults the Matcher *before* Magento dispatches the controller, so live redirects never cause a 404 first. Branches on the status code: 3xx → `setRedirect()`, 4xx/5xx → `setStatusHeader()` + body.
5. **`NoRoute` observer + `NoRouteHandler` plugin** — log every unmatched path to `panth_seo_404_log`, but consult the Matcher first so a path that is about to redirect is never counted as a 404.
6. **Two crons** — `panth_redirects_404_cluster` (daily) aggregates 404s into cluster patterns; `panth_redirects_redirect_cleanup` (weekly) deletes expired scheduled rules and stale auto-generated rows.

---

Supported HTTP Status Codes
---------------------------

[](#supported-http-status-codes)

CodeBehaviorTypical use**301**Moved Permanently — `Location` header emittedPermanent URL change (preferred for SEO value).**302**Found (Temporary) — `Location` header emittedShort-lived promos, seasonal pages.**303**See Other — `Location` header emittedForce the client to re-issue a GET after a POST.**307**Temporary Redirect — `Location` header, method preservedPreserve POST/PUT semantics for a temporary move.**308**Permanent Redirect — `Location` header, method preservedPermanent move that must keep POST semantics.**410**Gone — status + body, **no** `Location`Product retired with no replacement — tells search engines to drop the URL.**451**Unavailable For Legal Reasons — status + bodyGeo-blocked or legally-takendown content.**503**Service Unavailable — status + body + `Retry-After: 3600`Short maintenance windows. Same as setting Match Type = Maintenance.---

Compatibility
-------------

[](#compatibility)

RequirementSupportedMagento Open Source2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8Adobe Commerce2.4.4 — 2.4.8PHP8.1, 8.2, 8.3, 8.4Hyva Theme1.0+ (fully compatible)Luma ThemeNative supportPanth Core^1.0 (installed automatically)---

Installation
------------

[](#installation)

```
composer require mage2kishan/module-redirects
bin/magento module:enable Panth_Core Panth_Redirects
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:flush
```

### Verify

[](#verify)

```
bin/magento module:status Panth_Redirects
# Module is enabled
```

Visit **Admin → Panth Infotech → Manage Redirects** to see the empty grid.

---

Configuration
-------------

[](#configuration)

Navigate to **Stores → Configuration → Panth Infotech → Redirects &amp; 404s**.

SettingPathDefaultWhat it controls**Enable module**`panth_redirects/general/enabled`YesMaster switch. No rules fire and no 404s are logged when this is off.**Enable auto-redirect on delete**`panth_redirects/general/auto_redirect_enabled`YesWhen a product / category / CMS page is deleted, insert a 301 pointing to the configured target.**Auto-redirect target strategy**`panth_redirects/general/redirect_target_strategy``parent_category``parent_category`, `homepage`, or `custom_url`.**Auto-redirect custom URL**`panth_redirects/general/redirect_custom_url`(empty)Used when the strategy is `custom_url`. Validated against open-redirect and path-traversal.**Lowercase URL redirect**`panth_redirects/general/lowercase_redirect`YesRedirects `/FOO` to `/foo`.**Homepage alias redirect**`panth_redirects/general/homepage_redirect`YesRedirects `/home`, `/index.html` etc. to `/`.**Remove trailing slash**`panth_redirects/general/remove_trailing_slash`NoStrips trailing `/` on non-root URLs via 301.**Auto-rule expiry (days)**`panth_redirects/general/expiry_days`365Auto-generated rules that never hit are deleted after this many days by the cleanup cron. Admin-curated rows are never removed.**Log 404s**`panth_redirects/logging/log_404`YesWrite to `panth_seo_404_log`.**404 rate limit (per second)**`panth_redirects/logging/rate_limit_per_second`10Per-IP ceiling on 404 log writes.Each setting is resolved at *store-view* scope, so link budgets, auto-redirect targets and 404 logging can differ per store.

---

Managing Redirects
------------------

[](#managing-redirects)

Open **Admin → Panth Infotech → Manage Redirects** to reach the grid.

### Fields

[](#fields)

FieldDescription**Request Path (Pattern)**The URL path to match. For `regex`, a PCRE pattern (unwrapped — the engine adds delimiters).**Target URL**Destination for 3xx codes, or the response body for 410/451/503. Relative paths (`/about-us`) and absolute URLs (`https://other-host.example/`) both work. External hosts must be in the store's `base_url`.**Redirect Type**HTTP status code. See [Supported HTTP Status Codes](#supported-http-status-codes).**Match Type**`literal`, `regex` or `maintenance`.**Store View**`0` = all stores; a non-zero value scopes the rule to one store view.**Active**Per-row toggle.**Priority**Lower number wins when two literal rules share the same normalised pattern.**Active From / Active Until**Optional scheduling window. Leave empty for no restriction.### Mass actions

[](#mass-actions)

Select rows and choose **Enable**, **Disable** or **Delete** from the grid mass-action menu.

---

CSV Import / Export
-------------------

[](#csv-import--export)

### Header

[](#header)

```
store_id,match_type,pattern,target,status_code,priority,is_active
```

### Example

[](#example)

```
store_id,match_type,pattern,target,status_code,priority,is_active
0,literal,/old-page.html,/new-page.html,301,10,1
1,literal,/hyva-only-old,/hyva-only-new,301,20,1
2,literal,/luma-only-old,/luma-only-new,302,20,1
0,regex,^/archive/([0-9]+)$,/product/$1,301,30,1
0,maintenance,/checkout-maintenance,"We are offline for maintenance. Please try again later.",503,5,1
```

Click **Download sample CSV** on the Import page to grab this exact template.

### CLI import

[](#cli-import)

```
bin/magento panth:redirects:import file.csv            # live import
bin/magento panth:redirects:import file.csv --dry-run  # validate only, no DB writes
```

Every row is validated against:

- `match_type ∈ {literal, regex, maintenance}`
- `status_code ∈ {301, 302, 303, 307, 308, 410, 451, 503}`
- `pattern` non-empty; regexes must compile
- `target` rejected if it uses `javascript:`, `data:` or `vbscript:` schemes
- Literal rules run the loop detector — a chain that points back at itself is skipped with an error, never persisted

### Export

[](#export)

**Export CSV** on the grid streams every rule (respecting any active filters) through the ImportExport service's `exportToStream` method.

---

404 Log &amp; Cluster Analysis
------------------------------

[](#404-log--cluster-analysis)

### 404 Log

[](#404-log)

Every request that doesn't match a catalogue entry, a CMS page *or* a redirect rule is written to `panth_seo_404_log`. Rows are de-duplicated by `(store_id, sha256(path))` so a crawler hammering the same URL just increments `hit_count` instead of writing N rows. Referer and user-agent are stored for attribution and escaped at render time.

Per-IP rate limiting uses **APCu** when the extension is available (shared counter across FPM workers) and falls back to a per-worker static when it isn't — so the logger can never saturate the table under a DoS-y flood of 404s.

### 404 Clusters

[](#404-clusters)

The `panth_redirects_404_cluster` cron runs once a day. It walks the last seven days of `panth_seo_404_log`, groups paths by a normalised pattern (digits → `{n}`, UUIDs → `{uuid}`, slug segments collapsed when cardinality is high) and writes the top 500 clusters to `panth_seo_404_cluster`. From the admin grid you can see the hit count + a sample URL, then create one `regex` redirect rule that cleans up the entire family.

---

Security
--------

[](#security)

- Admin controllers extend `Magento\Backend\App\Action`. Every CRUD path declares its own `ADMIN_RESOURCE` constant and ACL is enforced via `_isAllowed()`.
- `Save`, `MassDelete`, `MassStatus` and `Import` implement `HttpPostActionInterface` — GET is rejected. Form-key validation runs on every POST.
- Every request parameter is cast to an expected type and compared against an explicit allow-list (match type, status code) before it reaches the database layer.
- All DB queries use parameter placeholders or `Zend_Db_Expr`. No user-controlled string concatenation in the redirect or 404 code paths.
- Regex rules are compiled with `@preg_match` wrapped in `try / catch`. A malformed rule logs a warning and is skipped; it can never crash the storefront.
- CSV import validates extension, MIME type, file size, reads via `fgetcsv()` on a file handle (never `str_getcsv` on a raw body), strips formula-injection characters (`= + - @ \t \r`) at the head of every cell, rejects dangerous URI schemes in the target column and runs loop detection before inserting.
- 404 log entries are escaped with `escapeHtml()` in the admin grid, so an attacker-submitted referer / user-agent can never execute script on an admin's browser.
- External redirect targets are only permitted if the host matches one of the configured store `base_url` values. Open-redirect to an arbitrary domain is blocked at dispatch time.
- `RedirectGuard` drops non-GET, AJAX, admin, API and static-asset requests before the Matcher even runs — so redirects only apply to actual storefront navigations.

---

Troubleshooting
---------------

[](#troubleshooting)

### A rule is live in the grid but the frontend still 404s

[](#a-rule-is-live-in-the-grid-but-the-frontend-still-404s)

1. `bin/magento cache:clean config full_page` — the Matcher caches the compiled rule table under `panth_redirects_table` and re-reads on next request.
2. Confirm **Enable module** is Yes at the store-view scope you are browsing.
3. Confirm the rule's **Active** flag is Yes.
4. If you use **Active From / Active Until**, make sure *now* falls within the window.
5. Test with a plain `curl` GET — `curl -k -o /dev/null -w '%{http_code} → %{redirect_url}\n' https://your-store.test/old-path`. If the HTTP response is the expected 3xx/4xx/5xx, your browser is just caching the old 404; hard-refresh.

### `curl -I` returns 404 but a plain GET redirects correctly

[](#curl--i-returns-404-but-a-plain-get-redirects-correctly)

That is intentional. `RedirectGuard` allows GET only — HEAD/POST/PUT are skipped on purpose so the redirect engine can't interfere with API and form-post flows.

### 410 / 451 responses still send a `Location` header

[](#410--451-responses-still-send-a-location-header)

Make sure you are running ≥ 1.0.1. Earlier releases always called `setRedirect()`; 1.0.1+ branches on status code and emits `setStatusHeader()` + body (no `Location`) for 4xx/5xx rules.

### Two literal rules share the same pattern and the wrong one wins

[](#two-literal-rules-share-the-same-pattern-and-the-wrong-one-wins)

Fixed in 1.0.1 — the Matcher now keeps the first row returned by the DB (sorted `priority ASC, redirect_id ASC`) and refuses to let a higher-priority-number row overwrite it in the in-memory hash. Upgrade and flush cache.

### 404 log is recording successful redirects

[](#404-log-is-recording-successful-redirects)

Fixed in 1.0.1 — both the `cms_index_noroute` observer and the `NoRouteHandlerInterface::process` plugin now consult the Matcher first and skip logging when a redirect rule is about to fire. Upgrade.

### 404 log grows too fast

[](#404-log-grows-too-fast)

Lower `panth_redirects/logging/rate_limit_per_second`. If you are being crawled aggressively, also install APCu so the rate limiter uses a shared counter instead of the per-worker fallback.

---

Support
-------

[](#support)

- **Agency:** [Panth Infotech on Upwork](https://www.upwork.com/agencies/1881421506131960778/)
- **Direct:** [kishansavaliya.com](https://kishansavaliya.com) — [Get a free quote](https://kishansavaliya.com/get-quote)

###  Health Score

45

—

FairBetter than 91% of packages

Maintenance97

Actively maintained with recent releases

Popularity10

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~4 days

Total

5

Last Release

32d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/343e344aa298f189db888b32d62f9202d31ced1a5ea23411850a63dc4a30299c?d=identicon)[kishansavaliya](/maintainers/kishansavaliya)

---

Top Contributors

[![KishanSavaliya](https://avatars.githubusercontent.com/u/16853223?v=4)](https://github.com/KishanSavaliya "KishanSavaliya (10 commits)")

---

Tags

seomagento2magento2 moduleredirectshyvalumaurl redirectpanth301-redirects404-logger

### Embed Badge

![Health badge](/badges/mage2kishan-module-redirects/health.svg)

```
[![Health](https://phpackages.com/badges/mage2kishan-module-redirects/health.svg)](https://phpackages.com/packages/mage2kishan-module-redirects)
```

###  Alternatives

[run-as-root/magento2-prometheus-exporter

Magento2 Prometheus Exporter

68353.9k](/packages/run-as-root-magento2-prometheus-exporter)[mollie/magento2

Mollie Payment Module for Magento 2

1131.8M12](/packages/mollie-magento2)[loki/magento2-components

Core module for defining Alpine.js components with advanced AJAX features

1010.0k22](/packages/loki-magento2-components)[opengento/module-category-import-export

This module add the capability to import and export the categories from the back-office.

1310.2k1](/packages/opengento-module-category-import-export)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
