aw-studio / laravel-redirects
处理Laravel应用程序中重定向的简单解决方案
v0.7
2024-05-08 13:16 UTC
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-09-08 14:10:42 UTC
README
本包为Laravel应用程序中创建和管理重定向提供了一种简单的方法。
安装
通过Composer安装包
composer require aw-studio/laravel-redirects
发布包迁移和配置
php artisan vendor:publish --provider="AwStudio\Redirects\RedirectsServiceProvider"
运行迁移
php artisan migrate
将 AwStudio\Redirects\Middleware\RedirectRoutesMiddleware
添加到 /app/Http/Kernel.php
class Kernel extends HttpKernel { protected $middleware = [ ... \AwStudio\Redirects\Middleware\RedirectRoutesMiddleware::class, ], }
用法
使用数据库重定向
提供的 Redirect
模型存储以下属性
- from_url
- to_url
- http_status_code(默认301)
- active(默认true)
使用此方法可以创建类似的重定向
app('redirect.model')->create([ 'from_url' => '/old', 'to_url' => '/new', 'http_status_code' => 301 ]);
使用配置重定向
如果您需要配置一些(静态)重定向,您可以在 config/redirects.php
中完成。
'redirects' => [ '/{any}' => '/en/{any}', ],
默认情况下,配置文件中的每个重定向都处理为 301
。但是,您可以像这样覆盖它
'redirects' => [ '/old' => ['/temporary-new', 302], ],
使用URL参数
配置和数据库重定向都支持Laravel路由参数
'redirects' => [ '/blog/{post}' => '/news/{post}', ] // app('redirect.model')->create([ 'from_url' => 'blog/{post}', 'to_url' => 'news/{post}', ]);
致谢
本包受已停止使用的 Neurony/laravel-redirects 包的启发,并借鉴了 spatie/laravel-missing-page-redirector。