lidai / laravel-redirects
Laravel 的嵌套 URL 重定向逻辑
Requires
- php: ^7.4|^8.0
Requires (Dev)
- orchestra/testbench: ^4.0|^5.0|^6.0
- phpunit/phpunit: ^9.0
README
概述
此包允许您为 Laravel 应用程序创建简单或多个嵌套重定向。
当您的应用程序中有可能被修改的 URL 时,此包在 SEO 方面可能很有用。
动态重定向逻辑示例
-
假设您有一个名为
/original的 URL -
您创建从
/original到/modified的重定向访问
/original将重定向到/modified -
您创建从
/modified到/modified-again的另一个重定向访问
/modified将重定向到/modified-againAND
访问/original将重定向到/modified-again -
您创建从
/modified-again到/modified-yet-again的另一个重定向访问
/modified-again将重定向到/modified-yet-againAND
访问/modified将重定向到/modified-yet-againAND
访问/original将重定向到/modified-yet-again -
您创建从
modified-yet-again到/original的另一个重定向访问
/modified-yet-again将重定向到/originalAND
访问/modified-again将重定向到/originalAND
访问/modified将重定向到/original
安装
使用 Composer 安装包
composer require lidai/laravel-redirects
使用以下命令发布配置文件
php artisan vendor:publish --provider="Lidai\Redirects\ServiceProvider" --tag="config"
使用以下命令发布迁移文件
php artisan vendor:publish --provider="Lidai\Redirects\ServiceProvider" --tag="migrations"
迁移发布后,您可以通过运行以下命令创建 redirects 表
php artisan migrate
使用
添加中间件
为了让重定向功能真正实现,您需要添加 Lidai\Redirects\Middleware\RedirectRequests 中间件。
转到 App\Http\Kernel 并将 Lidai\Redirects\Middleware\RedirectRequests 中间件添加到您选择的 $middlewareGroups 组中。
/** * The application's route middleware groups. * * @var array */ protected $middlewareGroups = [ 'web' => [ ... \Lidai\Redirects\Middleware\RedirectRequests::class,
创建重定向
您永远不应该直接使用 Lidai\Redirects\Models\Redirect,因为这将是 Lidai\Redirects\Contracts\RedirectModelContract 的默认具体实现。
直接使用 Lidai\Redirects\Models\Redirect 模型类将阻止您扩展模型的功能。
您可以创建存储在 redirects 表中的重定向,如下所示
app('redirect.model')->create([ 'old_url' => '/your-old-url', 'new_url' => '/your-new-url', 'status' => 301 ]);
有关如何扩展 Lidai\Redirects\Models\Redirect 模型的功能的详细信息,请参阅 /config/redirects.php -> redirect_model 的注释
致谢
安全
如果您发现任何与安全相关的问题,请通过电子邮件 lidai@jfmedier.dk 而不是使用问题跟踪器来联系 lidai@jfmedier.dk。
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 LICENSE。
变更日志
请参阅 CHANGELOG 了解最近的变化。
贡献
请参阅 CONTRIBUTING 了解详细信息。