apexmuse / laravel-redirects
Laravel的嵌套URL重定向逻辑
Requires
- php: ^7.3
- illuminate/contracts: ^8.0
- illuminate/database: ^8.0
- illuminate/support: ^8.0
Requires (Dev)
- orchestra/testbench: ^4.0|^5.0
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-09-23 21:29:21 UTC
README
概览
此包允许您为Laravel应用程序创建简单的或多个嵌套重定向。
当您的应用程序中有可能被修改的URL时,此包在SEO方面可能很有用。
动态重定向逻辑的示例
-
假设您有一个名为
/original的URL -
您从
/original重定向到/modified访问
/original将重定向到/modified -
您从
/modified创建另一个重定向到/modified-again访问
/modified将重定向到/modified-again,并且
访问/original也将重定向到/modified-again -
您从
/modified-again创建另一个重定向到/modified-yet-again访问
/modified-again将重定向到/modified-yet-again,并且
访问/modified也将重定向到/modified-yet-again,并且
访问/original也将重定向到/modified-yet-again -
您从
modified-yet-again创建另一个重定向到/original访问
/modified-yet-again将重定向到/original,并且
访问/modified-again将重定向到/original,并且
访问/modified将重定向到/original
安装
通过Composer安装包
composer require apexmuse/laravel-redirects
使用以下命令发布配置文件
php artisan vendor:publish --provider="ApexMuse\Redirects\ServiceProvider" --tag="config"
使用以下命令发布迁移文件
php artisan vendor:publish --provider="ApexMuse\Redirects\ServiceProvider" --tag="migrations"
迁移发布后,您可以通过运行以下命令创建redirects表
php artisan migrate
用法
添加中间件
为了让重定向功能真正发生,您需要添加ApexMuse\Redirects\Middleware\RedirectRequests中间件。
转到App\Http\Kernel并在您的选择的中$middlewareGroups组中添加ApexMuse\Redirects\Middleware\RedirectRequests中间件。
/** * The application's route middleware groups. * * @var array */ protected $middlewareGroups = [ 'web' => [ ... \ApexMuse\Redirects\Middleware\RedirectRequests::class,
创建重定向
您不应直接使用ApexMuse\Redirects\Models\Redirect,因为这将是ApexMuse\Redirects\Contracts\RedirectModelContract的默认具体实现。
直接使用ApexMuse\Redirects\Models\Redirect模型类将阻止您扩展模型的功能。
您可以使用以下方式创建存储在redirects表中的重定向
app('redirect.model')->create([ 'old_url' => '/your-old-url', 'new_url' => '/your-new-url', 'status' => 301 ]);
有关如何扩展ApexMuse\Redirects\Models\Redirect模型功能的说明,请参阅/config/redirects.php -> redirect_model中的注释
鸣谢
安全
如果您发现任何安全问题,请通过电子邮件andrei.badea@neurony.ro,而不是使用问题跟踪器。
许可
MIT许可(MIT)。有关更多信息,请参阅LICENSE。
更新日志
请参阅CHANGELOG以获取有关最近更改的更多信息。
贡献
请参阅CONTRIBUTING以获取详细信息。