apexmuse/laravel-redirects

Laravel的嵌套URL重定向逻辑

2.1.0 2020-09-23 12:21 UTC

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以获取详细信息。