the-3labs-team / nova-redirector-seo
Redirector SEO for Laravel Nova
Installs: 2 259
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 2
Open Issues: 2
Requires
- php: ^8.1|^8.2|^8.3
- illuminate/contracts: ^9.0|^10.0|^11.0
- spatie/laravel-package-tools: ^1.13.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
README
NovaRedirectorSEO is a all-in-one SEO package for Laravel Nova. It provides a simple way to manage your SEO redirects.
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, //...
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.