markohs / forcehttps
简单的Laravel中间件,强制HTTPS连接
Requires
- illuminate/support: ^5|^6|^7|^8|^9
Requires (Dev)
- mockery/mockery: ^1.1
- orchestra/testbench: ~3|~4
- phpunit/phpunit: ^8.0
- sempro/phpunit-pretty-print: ^1.0
README
这是一个简单的Laravel中间件,用于强制您的客户端使用HTTPS。它包含一个简单的白名单系统。查看contributing.md以查看待办事项列表。
安装
通过Composer
$ composer require markohs/forcehttps
发布默认配置文件
$ php artisan vendor:publish --tag=forcehttps.config
现在您可以在config/forcehttps.php中编辑默认设置
要求
此包仅在Laravel 6.0和8.0上进行了测试
使用方法
您可以使用以下任何一种方法
您可以在单个路由中强制使用HTTPS,例如在routes/web.php
中
Route::get('/','StaticPageController@getRoot')->middleware('forcehttps');
您还可以在config/forcehttps.php
中使用自动的MiddlewareGroup注册机制
'autoregister' => ['web']
或者,您可以在app/Http/Kernel.php
中手动添加中间件,就像在所需的MiddlewareGroups中一样
... 'web' => [ \App\Http\Middleware\EncryptCookies::class, ... \Markohs\ForceSSL\Middleware\ForceHTTPS::class, ... \Illuminate\Routing\Middleware\SubstituteBindings::class, ], ...
设置活动环境
默认情况下,此包仅在您指定的环境中激活,即stage
、prod
和production
。如果需要,请更新config/forcehttps.php
'enabled_environments' => ['stage', 'prod', 'production'],
URL白名单机制
此包还具有我在项目中找到的有用的路径排除机制。即使请求受到此中间件的影响,也会检查路径列表,以“白名单”的方式,这些URL不会发出301 HTTP重定向。我用于与其他使用旧POST样式且不支持HTTPS的传统系统进行通信。
您可以在config/forcehttps.php
中设置此URL白名单
'whitelist' => [ 'example/url', 'example2' ],
重要说明
如果您使用Cloudflare或某种类型的代理来托管您的网站,请确保您正确配置了TrustedProxy,否则此中间件将导致重定向循环。
请确保您保持配置文件/config/trustedproxy.php
或app\Http\Middleware\TrustProxies.php
中的变量$proxies
的最新状态。或者
变更日志
请参阅changelog以获取有关最近更改的更多信息。
贡献
请参阅contributing.md以获取详细信息以及待办事项列表。
安全
如果您发现任何安全相关的问题或想帮助改进此包,请发送电子邮件至marcos@tyrellcorporation.es或使用问题跟踪器或发送PR。
致谢
许可
MIT。请参阅许可文件以获取更多信息。