aw-studio / laravel-redirects
An easy solution to handle redirects in your Laravel application
Installs: 4 542
Dependents: 2
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 1
Requires
- php: ^7.4|^8.0|^8.1|^8.2
- illuminate/database: ^8.0|^9.0|^10.0|^11.0
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
Requires (Dev)
- orchestra/testbench: ^6.18
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-11-08 14:28:36 UTC
README
This package provides an easy way to create and manage redirects in your Laravel application.
Installation
Install the package via Composer:
composer require aw-studio/laravel-redirects
Publish the packages migrations and config:
php artisan vendor:publish --provider="AwStudio\Redirects\RedirectsServiceProvider"
Run the migration
php artisan migrate
Add AwStudio\Redirects\Middleware\RedirectRoutesMiddleware
to /app/Http/Kernel.php
:
class Kernel extends HttpKernel { protected $middleware = [ ... \AwStudio\Redirects\Middleware\RedirectRoutesMiddleware::class, ], }
Usage
Using database redirects
The provided Redirect
model stores the following attributes:
- from_url
- to_url
- http_status_code (default 301)
- active (default true)
With this you may create redirects like this:
app('redirect.model')->create([ 'from_url' => '/old', 'to_url' => '/new', 'http_status_code' => 301 ]);
Using config redirects
If you need to configure some (static) redirects you may do so in the config/redirects.php
.
'redirects' => [ '/{any}' => '/en/{any}', ],
By default every redirect from the configuration file is handled as a 301
.
You may however overwrite it like this:
'redirects' => [ '/old' => ['/temporary-new', 302], ],
Using URL parameters
Both, config and database redirects, support Laravel route parameters:
'redirects' => [ '/blog/{post}' => '/news/{post}', ] // app('redirect.model')->create([ 'from_url' => 'blog/{post}', 'to_url' => 'news/{post}', ]);
Credits
This package is inspired by and based on the discontinued Neurony/laravel-redirects package and also takes inspiration from spatie/laravel-missing-page-redirector.