ufxdcollective/url-redirection

一个简单的Laravel模块,用于在用户访问不可用的URL时进行重定向。

dev-master 2019-12-26 23:30 UTC

This package is auto-updated.

Last update: 2024-09-27 10:32:39 UTC


README

一个简单的Laravel模块,用于在用户访问不可用的URL时进行重定向。

使用此模块进行SEO优化或展示用户到代表旧的非现有(现在不再存在)URL的新URL。重定向可以是内部或外部URL之一。因此,您也可以使用此模块来缩短长URL。

如何启用重定向模块。

首先,您需要使用composer安装此包,然后更新一些应用程序代码以启用它。请注意,此包已启用Laravel自动发现。因此,您无需担心加载服务提供程序。

安装包

在项目根目录中运行此命令以将其安装到您的项目中。我们使用composer来完成此任务。

composer require ufxdcollective/url-redirection

将所需表迁移到数据库中。

运行此命令以迁移此包工作所需的数据库表。

php artisan migrate

如果您需要,也可以发布迁移并进行更新。

设置

更新文件 app/Exceptions/Handler.php 中的 render(...) 方法,如下所示。其余的将由重定向模块本身处理。


public function render($request, Exception $exception)
{

    // Redirection Module ------------------
    $redirect = Redirector::redirects($request, $exception);
    if($redirect) return $redirect;
    // --------------------------------------------

    return parent::render($request, $exception);
}

注意

此包不包含用于将重定向映射保存到数据库中的视图或控制器,因此为了创建接口,您必须自己完成这项工作。

在将其保存到数据库之前,不要忘记使用 Redirector::filterURL($url)from_url 进行过滤。

以下是一个代码片段,说明您如何使用模型来存储URL重定向映射。


use \UFXDCollective\URLRedirection\Redirector;
use \UFXDCollective\URLRedirection\Models\UrlRedirect;


// ...
// ...

$from_url = $request->input('from_url');

// Filter $from_url for better url consistency
$from_url = Redirector::filterURL($from_url);

// You don't need to filter the $to_url
$from_url = $request->input('from_url'); 

$urlRedirect = new UrlRedirect([
    'from_url' => $from_url,
    'to_url' => $to_url,
    'method' => 301,
    'is_enabled' => true,
]);


$urlRedirect->save();

// ...