accentinteractive / laravel-ignore-extensions
不处理扩展名为 .jpg、.png 等的 URL。
v1.0.0
2023-07-10 08:12 UTC
Requires
- php: ^7.3|^7.4|^8.0
- guzzlehttp/guzzle: ^7.5
- illuminate/console: ^6.0|^7.0|^8.0|^9.0|^10.0
- illuminate/filesystem: ^6.0|^7.0|^8.0|^9.0|^10.0
- illuminate/support: ^6.0|^7.0|^8.0|^9.0|^10.0
Requires (Dev)
- orchestra/testbench: 4.*|5.*|6.*|^7.0|^8.0
- phpunit/phpunit: ^8.4|^9.0|^10.0
README
如果你的应用程序有一个回退路由如 Route::get({slug})
,调用不存在的资源将被 Laravel 处理 - 这会给服务器带来压力。如果许多资源不存在(如测试服务器),甚至可能导致应用程序完全停止。
此包包含一个中间件,如果请求包含你在 .env 文件中设置的特定扩展名,将终止请求。
安装
步骤 1:使用 composer 安装包
composer require accentinteractive/laravel-ignore-extensions
步骤 2:确保注册中间件。
要处理所有请求,请将其作为 $middlewareGroups
中 web
部分的第一个选项添加到 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 包模板 生成的。