tofandel/laravel-redirects

Laravel的嵌套URL重定向逻辑

v4.2.0 2024-05-20 12:17 UTC

This package is auto-updated.

Last update: 2024-09-20 16:01:33 UTC


README

Laravel的嵌套重定向

Build Status StyleCI Scrutinizer Code Quality Code Coverage

概述

此包允许您为Laravel应用程序创建简单或多个嵌套重定向。

当您的应用程序中有URL可能被修改时,此包可以从SEO角度非常有用。

动态重定向逻辑示例

  • 假设您有一个名为 /original 的URL

  • 您从 /original 重定向到 /modified

    访问 /original 将重定向到 /modified

  • 您从 /modified 重定向到 /modified-again

    访问 /modified 将重定向到 /modified-again AND
    访问 /original 将重定向到 /modified-again

  • 您从 /modified-again 重定向到 /modified-yet-again

    访问 /modified-again 将重定向到 /modified-yet-again AND
    访问 /modified 将重定向到 /modified-yet-again AND
    访问 /original 将重定向到 /modified-yet-again

  • 您从 modified-yet-again 重定向到 /original

    访问 /modified-yet-again 将重定向到 /original AND
    访问 /modified-again 将重定向到 /original AND
    访问 /modified 将重定向到 /original

安装

通过Composer安装包

composer require Tofandel/laravel-redirects

使用以下命令发布配置文件

php artisan vendor:publish --provider="Tofandel\Redirects\ServiceProvider" --tag="config"

使用以下命令发布迁移文件

php artisan vendor:publish --provider="Tofandel\Redirects\ServiceProvider" --tag="migrations"

迁移发布后,您可以通过运行以下命令创建 redirects

php artisan migrate

使用

添加中间件

为了让重定向功能真正发生,您需要添加 Tofandel\Redirects\Middleware\RedirectRequests 中间件。

前往 App\Http\Kernel 并在您的 $middlewareGroups 组中选择添加 Tofandel\Redirects\Middleware\RedirectRequests 中间件。

/**
 * The application's route middleware groups.
 *
 * @var array
 */
protected $middlewareGroups = [
    'web' => [
        ...
        \Tofandel\Redirects\Middleware\RedirectRequests::class,
创建重定向

您绝对不应该直接使用 Tofandel\Redirects\Models\Redirect,因为这将是 Tofandel\Redirects\Contracts\RedirectModelContract 的默认具体实现。

直接使用 Tofandel\Redirects\Models\Redirect 模型类将阻止您扩展模型的功能。

您可以通过以下方式创建将存储在 redirects 表中的重定向

app('redirect.model')->create([
    'old_url' => '/your-old-url',
    'new_url' => '/your-new-url',
    'status' => 301
]);

要了解如何扩展 Tofandel\Redirects\Models\Redirect 模型的能力,请参阅 /config/redirects.php -> redirect_model 的注释

鸣谢

安全

如果您发现任何安全相关的问题,请通过电子邮件 tofandel@tukan.hu 而不是使用问题跟踪器。

许可证

MIT许可证(MIT)。请参阅 LICENSE 以获取更多信息。

更新日志

请参阅 CHANGELOG 了解最近发生了什么变化。

贡献

请参阅 CONTRIBUTING 了解详细信息。