1970mr / laravel-redirector
一款用于轻松高效管理URL重定向的Laravel包。
Requires
- php: ^8.2
- illuminate/contracts: ^11.0||^10.0
Requires (Dev)
- larastan/larastan: 2.9
- laravel/pint: ^1.17
- orchestra/testbench: ^9.0.0||^8.22.0
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: *
- phpstan/phpstan-mockery: ^1.1
- phpunit/phpunit: ^11.0||^10.0
README
一款用于轻松高效管理URL重定向的Laravel包。
目录
安装
您可以通过Composer安装此包。
composer require 1970mr/laravel-redirector
接下来,您需要发布迁移和配置文件。
php artisan vendor:publish --provider="Mr1970\LaravelRedirector\RedirectorServiceProvider"
运行迁移以创建必要的数据库表。
php artisan migrate
配置
该包提供了一个配置文件,您可以在此管理各种设置,包括缓存方法和TTL(生存时间)。这些设置允许您优化重定向的性能和可扩展性。有关详细信息,请参阅config/redirector.php
文件。
使用
中间件
要使用重定向中间件,您可以将它应用于特定路由、路由组,或将它全局添加到HTTP内核中间件堆栈中。
特定路由
use Mr1970\LaravelRedirector\Middlewares\HandleRedirects; Route::middleware([HandleRedirects::class])->group(function () { // Your routes here });
全局中间件
在Laravel 11中,您可以在bootstrap/app.php
文件中全局添加中间件。
->withMiddleware(function (Middleware $middleware) { $middleware->append(\Mr1970\LaravelRedirector\Middlewares\HandleRedirects::class); })
别名中间件
您可以通过别名或类名在路由中使用中间件。
// Using alias Route::middleware(['redirector'])->group(function () { // Your routes here }); // Using class name Route::middleware([\Mr1970\LaravelRedirector\Middlewares\HandleRedirects::class])->group(function () { // Your routes here });
Artisan命令
该包提供了一些Artisan命令来管理重定向。
创建重定向
要创建重定向,您可以使用redirect:create
Artisan命令。此命令允许您指定源URL、目标URL、状态码以及是否启用重定向。
php artisan redirect:create {source_url} {destination_url} {status_code=301} {is_active=1}
示例
-
将
/old-page
重定向到/new-page
,状态码为301,并设置为启用。php artisan redirect:create /old-page /new-page 301 1
-
将
/specific-page
重定向到https://google.com
,状态码为301,并设置为启用。php artisan redirect:create /specific-page https://google.com 301 1
更新重定向
要更新现有重定向,您可以使用redirect:update
Artisan命令。
php artisan redirect:update {source_url} {destination_url} {status_code=301} {is_active=1}
示例
将重定向从/old-page
更新到/new-destination
,状态码为302,并设置为启用。
php artisan redirect:update /old-page /new-destination 302 1
删除重定向
要删除重定向,请使用redirect:delete
Artisan命令。
php artisan redirect:delete {source_url}
示例
删除从/old-page
的重定向。
php artisan redirect:delete /old-page
列出重定向
要列出所有配置的重定向,请使用redirect:list
Artisan命令。
php artisan redirect:list
控制器和视图
您还可以使用控制器、请求、路由和视图设置更可定制的CRUD界面来管理重定向。该包提供了一个命令来生成这些组件。
php artisan redirector:install
此命令将安装管理重定向所需的控制器、请求、路由和视图。
自定义实现
此外,您可以直接使用Redirect模型在应用程序代码中创建、更新或删除重定向,根据需要。这种方法允许完全自定义重定向的管理方式和位置。
缓存
该包支持两种缓存方法
- 完整列表:所有启用的重定向都被缓存为一个单一集合。此方法适用于少量重定向,但随着重定向数量的增加可能变得低效。任何创建、更新或删除操作都会重置整个列表缓存。
- 单个:每个重定向单独缓存。此方法在大量重定向的情况下表现更好,但可能导致更多缓存操作。创建、更新或删除操作仅重置特定缓存的项。
您可以在config/redirector.php
文件中配置缓存方法和TTL,以满足您的应用程序需求。
测试
要运行包的测试,请使用以下命令
composer test
许可证
MIT许可证。请参阅许可证文件以获取更多信息。