URL Manager
Stop losing traffic to broken links — manage redirects, auto-preserve moved page URLs, and turn repeated 404s into recovered SEO.
What URL Manager provides
Stop losing traffic to broken links — manage redirects, auto-preserve moved page URLs, and turn repeated 404s into recovered SEO.
It is built for teams that need url manager, redirects, broken links and imports across filament admin and public frontend without turning the project into one-off application code.
Editors get a focused Capell workflow that feels native to the site instead of another disconnected tool to learn.
Developers keep the behaviour inside a reviewed package boundary, with clear install impact, support context, and upgrade expectations.
Use the documentation tab, screenshot gallery, and related extensions on this page to decide how URL Manager fits before enabling it on a production Capell site.
Install on your Capell site in three steps.
Each extension ships as a standard Composer package. Purchases unlock account access immediately before you install.
-
01
Require the package
composer require capell-app/url-manager -
02
Register the extension
php artisan capell:extension:enable capell-app-url-manager -
03
Clear schema cache
php artisan capell:admin:clear-schemas-cache
Related extensions
Browse the packages that usually pair with URL Manager or buy the suite it belongs to.
Capell Core
Capell Core gives Laravel teams the shared CMS model for sites, languages, pages, URLs, layouts, themes, media...
Capell Admin
Capell Admin gives editors a Filament workspace for managing structured content, settings, roles, publishing,...
Capell Installer
Capell Installer guides Laravel teams through bootstrapping a Capell site, choosing packages, preparing the fi...
Growth Campaign Suite
Launch measurable campaigns in Capell with landing pages, form capture, SEO readiness, site search, and redirect recovery in one buyer path.
Search & Performance Suite
Improve discovery and page speed together with SEO output, site search, URL recovery, and frontend asset optimization for public Capell pages.
Package README Install impact, package shape, common pitfalls, and maintenance notes. Open
Capell URL Manager
Capell URL Manager owns managed redirect rules and 404 opportunity tracking.
The package is intentionally action-driven:
RedirectRulestores normalized source and target URLs, match type, status code, active state, hit count, and last hit timestamp.RedirectHitstores per-hit evidence without storing raw IP addresses or user agents.NotFoundOpportunitystores repeated 404 paths and a suggested target URL when one can be inferred.ConvertNotFoundOpportunityToRedirectActioncreates a redirect from a reviewed 404 opportunity and marks it converted.RecordChangedUrlRedirectActionaccepts previous/current page paths and creates an exact redirect only when the normalized URL changed. Parent page moves also create a prefix redirect so child paths continue to resolve.- Import/export actions use CSV-compatible rows for admin import/export workflows, including redirect priority.
RedirectRulesPageandNotFoundOpportunitiesPageexpose package-owned admin tables. The 404 table callsConvertNotFoundOpportunityToRedirectActionfor conversions.BuildCanonicalUrlActionapplies the package canonical URL policy for scheme, host, path case, trailing slash handling, and tracking-query stripping.PruneRedirectHitsActionandurl-manager:prune-hitsprune old per-hit rows according to the configured retention window.
Redirect policy
Managed source paths are normalized to lowercase paths without query strings before hashing. Query strings are preserved only at response time when preserve_query is enabled, so /old-page?utm_source=x still matches a /old-page rule.
Absolute targets are allowed only for configured hosts and, by default, the host from app.url. This keeps CSV imports and lower-trust admin workflows from creating open redirects to arbitrary domains. Exact redirect chains are collapsed at write time, and cyclic chains are rejected before save. Regex sources are validated at write time and bounded by capell-url-manager.redirects.regex.max_pattern_length; runtime regex resolution checks only the configured number of ordered rules.
Redirect priority controls overlapping prefix and regex matches. Higher priority wins before fallback ordering, then longer prefix paths win inside the same priority.
Integration points
- Frontend/Core request resolution can use
UrlManagerRedirectResolver, which decorates Core's existingRedirectResolverbinding and falls back to URL Manager rules when CorePageUrlredirects do not resolve. - Core
PageUrlChangedevents are handled byRecordRedirectForChangedPageUrl, which writes the previous URL into URL Manager when the normalized source and target differ. - Public 404 handling is captured by
RecordNotFoundOpportunityMiddlewarethrough the frontend middleware registry. Hosts that do not use the frontend registry can callRecordNotFoundOpportunityActiondirectly with the normalized path, site ID, language ID, and lightweight context. Do not render any URL Manager metadata into public HTML. - Review/admin flows should call
ConvertNotFoundOpportunityToRedirectActionafter an editor chooses a target URL. - SEO Suite broken URL surfaces can read URL Manager data by using
NotFoundOpportunityfor 404 candidates andExportRedirectRulesActionfor redirect coverage. Existing SEO SuiteBrokenLinkrows can be imported by callingImportSeoSuiteBrokenLinksAction, thenBuildNotFoundRedirectSuggestionsAction.
Configuration
config/capell-url-manager.php controls:
- allowed redirect status codes;
- absolute target host allowlist;
- regex pattern length and runtime rule scan limits;
- deferred hit recording and hit retention;
- ignored paths for 404 capture;
- canonical URL scheme, host, slash, lowercase, and query stripping policy.
Hit recording is deferred with an application terminating callback by default so public redirects do not wait for the redirect_hits insert and rule counter update before returning the redirect response.
Overview A shorter package overview for marketplace and account review. Open
URL Manager Overview
URL Manager is Capell's package-owned redirect and broken-link remediation layer. It stores redirect rules, records lightweight hit evidence, captures repeated 404 opportunities, imports SEO Suite broken-link rows, and exposes admin pages for editors to review and convert redirect candidates.
Runtime Flow
UrlManagerRedirectResolver decorates Core's RedirectResolver contract. Core decisions win first; if Core has no redirect decision and the current PageUrl is not a real page, URL Manager resolves active exact, prefix, and regex rules for the current site and language. Exact rules match by a normalized path hash. Prefix rules use bounded candidate paths and priority ordering. Regex rules are validated at write time, ordered by priority, and capped by capell-url-manager.redirects.regex.max_rules_checked.
Hit recording is deferred by default. The redirect response can return immediately, then the application terminating callback writes url_manager_redirect_hits and updates the rule counter. Set capell-url-manager.hit_recording.defer to false only for diagnostics or tests that need synchronous writes.
Redirect Safety
Source URLs are lowercased and stripped of query strings before matching. Query strings are only reattached by UrlManagerRedirectResolver when preserve_query is enabled and the target URL has no query string of its own.
Absolute targets are constrained to configured hosts plus the app.url host by default. Configure extra hosts through capell-url-manager.redirects.absolute_target_allowed_hosts. Exact redirect chains are collapsed to their final active target when a rule is saved, and loops or cycles are rejected before persistence. Regex sources are bounded by maximum pattern length and validated before a rule is saved.
Changed URLs And 404 Capture
RecordRedirectForChangedPageUrl listens for Core PageUrlChanged events. It creates an exact redirect for the changed path and, for parent moves, a prefix redirect so child URLs continue to resolve.
RecordNotFoundOpportunityMiddleware registers with Capell Frontend's middleware registry and records public 404 responses as NotFoundOpportunity rows. Ignored path prefixes, such as admin and Livewire paths, live in capell-url-manager.not_found.ignored_path_prefixes.
Package tests cover the installed-provider wiring for both UrlManagerRedirectResolver and the frontend 404 capture middleware, so these capabilities are verified at the package boundary rather than only by action-level tests.
Canonical URLs
BuildCanonicalUrlAction provides the package canonical URL policy. It can force a scheme or host, lowercase paths, add or remove trailing slashes, and strip configured tracking query parameters. The action does not render tags by itself; consumers can call it when they need URL Manager's canonical policy.
Admin And CSV
The Redirect Rules admin table supports create, edit, enable, disable, delete, bulk lifecycle actions, CSV import/export, and template download. CSV rows include priority so migration exports preserve overlap ordering. The 404 Opportunities page lets editors ignore, reopen, or convert opportunities into redirect rules.
Retention
PruneRedirectHitsAction deletes old per-hit evidence according to capell-url-manager.hit_recording.retention_days. Operators can run url-manager:prune-hits or pass --days= for a one-off retention window.
Downloads and releases
- Total downloads
- 0
- Last downloaded
- No downloads yet
Version history
1 release-
v1.0.0May 3, 2026
No approved reviews yet. Reviews from eligible customers appear here after marketplace review.
Payment and licences
How marketplace purchases work
Capell keeps payment, account ownership, package receipts, and install access separate so a failed step can be recovered without guessing where the licence lives.
Who takes the payment?
Paid marketplace checkouts are sent to Stripe. Capell does not collect card details inside your CMS; Stripe confirms the payment and Capell activates the matching marketplace licence for the Capell account that approved the install.
How is the licence attached?
The licence is created against the signed-in Capell account first. When the hosted install flow returns to your CMS, Capell binds that licence to the requesting site and sends back the install authorization needed to continue.
Where does Anystack fit?
Anystack can be the package commerce and distribution surface for marketplace products. Capell still records the account licence and installed receipt, then relays later Anystack product or licence events only to connected sites that already have the package installed.
What happens if checkout is cancelled or expires?
No licence is created until Stripe confirms payment. If checkout is cancelled, start it again from the same review screen. If the quote expires, return to the marketplace in your CMS and start a fresh install flow so pricing and package metadata are recalculated.
What should I do if something looks wrong?
Keep the support reference shown on the review screen or receipt, then contact support before retrying with a different account. For missing licences, failed returns, or Anystack receipt mismatches, Capell can reconcile the Stripe session, Capell account, package receipt, and connected site from that reference.