This package provides an easy way to create and manage redirects in your Laravel application.
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,
],
}
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
]);
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],
],
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}',
]);
This package is inspired by and based on the discontinued Neurony/laravel-redirects package and also takes inspiration from spatie/laravel-missing-page-redirector.