the-3labs-team/nova-redirector-seo

Redirector SEO for Laravel Nova

Maintainers

Package info

github.com/The-3Labs-Team/nova-redirector-seo

Homepage

pkg:composer/the-3labs-team/nova-redirector-seo

Transparency log

Statistics

Installs: 4 225

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 4

v1.1.0 2026-08-12 11:29 UTC

This package is auto-updated.

Last update: 2026-08-12 11:29:39 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

NovaRedirectorSEO is a all-in-one SEO package for Laravel Nova. It provides a simple way to manage your SEO redirects.

Demo Redirector SEO Laravel Nova

Why choose NovaRedirectorSEO?

  • Pre-configured Laravel Nova resource, you need only to install, register and configure the package.
  • Middleware to handle redirects, you can use it in your routes or in your controllers.
  • Cache support, based on your configuration, the package will cache the redirects. Also, it flush caches when you create, update or delete a redirect.
  • Regex support, you can use regex in your redirects.

Installation

You can install the package via composer:

composer require the-3labs-team/nova-redirector-seo

You can publish and run the migrations with:

php artisan vendor:publish --tag="nova-redirector-seo-migrations"
php artisan migrate

You can publish the config file with:

php artisan vendor:publish --tag="nova-redirector-seo-config"

This is the contents of the published config file:

return [
    'cache' => [
        'ttl' => 60 * 60 * 24 * 7, // 7 days
    ],
];

It will use the default cache driver configured in your config/cache.php file.

If you want to disable the cache, you can set the ttl to null.

Usage

Now it's time to configure the package.

Nova resource

First, register the NovaRedirectorSeo tool in your /app/Providers/NovaServiceProvider.php (you will probably have to add the entire function):

    /**
     * Register the application's Nova resources.
     *
     * @return void
     */
    protected function resources()
    {
        Nova::resourcesIn(app_path('Nova'));

        Nova::resources([
            \The3LabsTeam\NovaRedirectorSeo\App\Nova\NovaRedirectorSeo::class,
        ]);
    }

Now you can access the tool in your Nova panel, under the "SEO" menu.

Middleware

NovaRedirectorSeo is provided with a middleware that will redirect the user to the correct URL, if the current URL is not the correct one.

You can add this middleware to your app/Http/Kernel.php file:

    protected $middleware = [
        \The3LabsTeam\NovaRedirectorSeo\App\Http\Middleware\NovaRedirectorSeoMiddleware::class,
        //...

Writing rules

From URL is matched against the request path, without the leading slash: write old-page or blog/old-post, not /old-page. To URL is passed to Laravel's redirector, so both a path (/new-page) and an absolute URL (https://example.com/new-page) work.

Tick Is Regex to match a family of paths. Patterns are stored as bare expressions — no delimiters — and slashes need no escaping:

From URL To URL Result
posts/(.*) /articles/$1 posts/hello/articles/hello
^shop/(\d+)$ /products/$1 shop/42/products/42

Capture groups are available in To URL as $1, $2, and so on. Anchor the pattern with ^ and $ unless you deliberately want to match anywhere in the path: posts/(.*) also matches archive/posts/hello. A pattern that does not compile is skipped, so a malformed rule can never take the redirector down — but it will silently never fire, so test it after saving.

Regex rules are evaluated before exact ones, in id order, and the first match wins — that also applies to two exact rules sharing the same From URL: the lower id is used.

Patterns are never rewritten before compiling: the expression is wrapped in one of # ~ ! @ ; , % = | +, whichever it does not already contain, so constructs like (?#comment) keep their meaning. A pattern containing all ten is skipped.

Caching

Every enabled rule is kept in a single cache entry, and the whole set is read once per request. The cache is flushed automatically whenever a rule is created, updated, deleted or restored, so changes made in Nova take effect immediately.

Set cache.ttl to null or 0 to read the rules from the database on every request. This is only worth doing while debugging: the middleware runs on every request your application serves.

Policies

You can add a policy to the NovaRedirectorSeo resource, to restrict the access to the resource.

First, you need to create a policy for the NovaRedirectorSeo resource:

php artisan make:policy NovaRedirectorSeoPolicy

Then, register the policy in your app/Providers/AuthServiceProvider.php file:

    protected $policies = [
        'The3LabsTeam\NovaRedirectorSeo\App\Models\NovaRedirectorSeo' => 'App\Policies\NovaRedirectorSeoPolicy',
    ];

If you need, you can use this policy as a template:

<?php

namespace App\Policies;

use App\Models\User;
use The3LabsTeam\NovaRedirectorSeo\App\Models\NovaRedirectorSeo;
use Illuminate\Auth\Access\HandlesAuthorization;

class NovaRedirectorSeoPolicy
{
    use HandlesAuthorization;

    /**
     * Determine whether the user can view any models.
     *
     * @param  \App\Models\User  $user
     * @return \Illuminate\Auth\Access\Response|bool
     */
    public function viewAny(User $user)
    {
        return true;
    }

    /**
     * Determine whether the user can view the model.
     *
     * @param  \App\Models\User  $user
     * @param  The3LabsTeam\NovaRedirectorSeo\App\Models\NovaRedirectorSeo  $novaRedirectorSeo
     * @return \Illuminate\Auth\Access\Response|bool
     */

    public function view(User $user, NovaRedirectorSeo $novaRedirectorSeo)
    {
        return true;
    }

    /**
     * Determine whether the user can create models.
     *
     * @param  \App\Models\User  $user
     * @param The3LabsTeam\NovaRedirectorSeo\App\Models\NovaRedirectorSeo $novaRedirectorSeo
     * @return \Illuminate\Auth\Access\Response|bool
     */
    public function create(User $user)
    {
        return false;
    }

    /**
     * Determine whether the user can update the model.
     *
     * @param  \App\Models\User  $user
     * @param  The3LabsTeam\NovaRedirectorSeo\App\Models\NovaRedirectorSeo  $novaRedirectorSeo
     * @return \Illuminate\Auth\Access\Response|bool
     */
    public function update(User $user, NovaRedirectorSeo $novaRedirectorSeo)
    {
        return false;
    }

    /**
     * Determine whether the user can delete the model.
     *
     * @param  \App\Models\User  $user
     * @param  The3LabsTeam\NovaRedirectorSeo\App\Models\NovaRedirectorSeo  $novaRedirectorSeo
     * @return \Illuminate\Auth\Access\Response|bool
     */
    public function delete(User $user, NovaRedirectorSeo $novaRedirectorSeo)
    {
        return false;
    }

    /**
     * Determine whether the user can restore the model.
     *
     * @param  \App\Models\User  $user
     * @param  The3LabsTeam\NovaRedirectorSeo\App\Models\NovaRedirectorSeo  $novaRedirectorSeo
     * @return \Illuminate\Auth\Access\Response|bool
     */
    public function restore(User $user, NovaRedirectorSeo $novaRedirectorSeo)
    {
        return false;
    }

    /**
     * Determine whether the user can permanently delete the model.
     *
     * @param  \App\Models\User  $user
     * @param  The3LabsTeam\NovaRedirectorSeo\App\Models\NovaRedirectorSeo  $novaRedirectorSeo
     * @return \Illuminate\Auth\Access\Response|bool
     */
    public function forceDelete(User $user, NovaRedirectorSeo $novaRedirectorSeo)
    {
        return false;
    }
}

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.

Sponsor

Tom's Hardware - Notizie, recensioni, guide all'acquisto e approfondimenti per tutti gli appassionati di computer, smartphone, videogiochi, film, serie tv, gadget e non solo Spaziogames - Tutto sul mondo dei videogiochi. Troverai tantissime anteprime, recensioni, notizie dei giochi per tutte le console, PC, iPhone e Android.
Cpop - News, recensioni, guide su fumetto, cinema & serie TV, gioco da tavolo e di ruolo e collezionismo. Tutto quello di cui hai bisogno per rimanere aggiornato sul mondo della cultura pop Data4Biz - Sito dedicato alla trasformazione digitale del business
SOS Home & Garden - Realtà dedicata a 360 gradi ai settori della casa e del giardino. Techradar - Le ultime notizie e recensioni dal mondo della tecnologia, su computer, sistemi per la casa, gadget e altro.
Aibay - Scopri AiBay, il leader delle notizie sull'intelligenza artificiale. Resta aggiornato sulle ultime innovazioni, ricerche e tendenze del mondo AI con approfondimenti, interviste esclusive e analisi dettagliate. Coinlabs - Notizie, analisi approfondite, guide e opinioni aggiornate sul mondo delle criptovalute, blockchain e finanza