aw-studio/laravel-redirects

处理Laravel应用程序中重定向的简单解决方案

v0.7 2024-05-08 13:16 UTC

This package is auto-updated.

Last update: 2024-09-08 14:10:42 UTC


README

本包为Laravel应用程序中创建和管理重定向提供了一种简单的方法。

安装

通过Composer安装包

composer require aw-studio/laravel-redirects

发布包迁移和配置

php artisan vendor:publish --provider="AwStudio\Redirects\RedirectsServiceProvider"

运行迁移

php artisan migrate

AwStudio\Redirects\Middleware\RedirectRoutesMiddleware 添加到 /app/Http/Kernel.php

class Kernel extends HttpKernel
{
    protected $middleware = [
        ...
        \AwStudio\Redirects\Middleware\RedirectRoutesMiddleware::class,
    ],
}

用法

使用数据库重定向

提供的 Redirect 模型存储以下属性

  • from_url
  • to_url
  • http_status_code(默认301)
  • active(默认true)

使用此方法可以创建类似的重定向

app('redirect.model')->create([
    'from_url' => '/old',
    'to_url' => '/new',
    'http_status_code' => 301
]);

使用配置重定向

如果您需要配置一些(静态)重定向,您可以在 config/redirects.php 中完成。

'redirects' => [
    '/{any}' => '/en/{any}',
],

默认情况下,配置文件中的每个重定向都处理为 301。但是,您可以像这样覆盖它

'redirects' => [
    '/old' => ['/temporary-new', 302],
],

使用URL参数

配置和数据库重定向都支持Laravel路由参数

'redirects' => [
    '/blog/{post}' => '/news/{post}',
]

//

app('redirect.model')->create([
    'from_url' => 'blog/{post}',
    'to_url' => 'news/{post}',
]);

致谢

本包受已停止使用的 Neurony/laravel-redirects 包的启发,并借鉴了 spatie/laravel-missing-page-redirector