accentinteractive/laravel-ignore-extensions

不处理扩展名为 .jpg、.png 等的 URL。

v1.0.0 2023-07-10 08:12 UTC

This package is auto-updated.

Last update: 2024-09-10 10:54:01 UTC


README

Latest Version on Packagist Total Downloads GitHub Actions

如果你的应用程序有一个回退路由如 Route::get({slug}),调用不存在的资源将被 Laravel 处理 - 这会给服务器带来压力。如果许多资源不存在(如测试服务器),甚至可能导致应用程序完全停止。

此包包含一个中间件,如果请求包含你在 .env 文件中设置的特定扩展名,将终止请求。

安装

步骤 1:使用 composer 安装包

composer require accentinteractive/laravel-ignore-extensions

步骤 2:确保注册中间件。

要处理所有请求,请将其作为 $middlewareGroupsweb 部分的第一个选项添加到 app/Http/Kernel.php 文件中。

protected $middlewareGroups = [
    'web' => [
        \Accentinteractive\LaravelIgnoreExtensions\Http\Middleware\DoNotProcessExtensions::class,
    ],
];

要处理特定请求,请将其添加到任何组或 app/Http/Kernel.php 文件中的 protected $middleware 属性中。

protected $middleware = [
        \Accentinteractive\LaravelIgnoreExtensions\Http\Middleware\DoNotProcessExtensions::class,
    ];

步骤 3:可选地使用以下命令发布配置文件

php artisan vendor:publish --provider="Accentinteractive\LaravelIgnoreExtensions\LaravelIgnoreExtensionsServiceProvider" --tag="config"

此包的配置存储在 config('laravel-ignore-extensions')

使用方法

该包使用自动发现。该包使用一个中间件类来完成检查和终止。

配置设置

设置应该返回 404 的扩展名

您可以在发布的配置文件中设置要检查的扩展名,或者在 .env 中设置这些值。默认为 'jpg|gif|png|jpeg|txt|html|pdf|css|js'。

EXTENSIONS_NOT_TO_PROCESS=jpg|gif|png|jpeg|txt|html|pdf|css|js

测试

vendor/bin/phpunit tests
XDEBUG_MODE=coverage vendor/bin/phpunit tests --coverage-html code-coverage 

更新日志

请参阅 更新日志 了解最近更改的详细信息。

贡献

请参阅 贡献指南 了解详情。

安全

如果您发现任何安全问题,请通过电子邮件 joost@accentinteractive.nl 联系,而不是使用问题跟踪器。

致谢

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。

Laravel 包模板

此包是用 Laravel 包模板 生成的。