lidai/laravel-redirects

Laravel 的嵌套 URL 重定向逻辑

v1.0.4 2022-03-29 10:16 UTC

This package is auto-updated.

Last update: 2024-09-29 05:56:37 UTC


README

概述

此包允许您为 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 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 了解详细信息。