csun-metalab / laravel-force-https
一个为Laravel 5.0及以上版本设计的Composer包,用于强制在URL中使用HTTPS
1.0.1
2020-08-12 14:54 UTC
Requires
- php: >=5.5.9
README
一个用于通过中间件强制在URL中使用HTTPS的Composer小包,适用于Laravel 5.0及以上版本。
目录
安装
Composer、环境和服务提供者
Composer
要从Composer安装,请使用以下命令
composer require csun-metalab/laravel-force-https
环境
现在,将以下行添加到您的.env
文件中
FORCE_HTTPS=true
这将启用强制功能。
服务提供者
将服务提供者添加到Laravel中的config/app.php
文件中的providers
数组中,如下所示
'providers' => [
//...
CSUNMetaLab\ForceHttps\Providers\ForceHttpsServiceProvider::class,
// You can also use this based on Laravel convention:
// 'CSUNMetaLab\ForceHttps\Providers\ForceHttpsServiceProvider',
//...
],
中间件安装
将中间件添加到app/Http/Kernel.php
文件中的$middleware
数组中,以将其应用于应用程序接收到的所有请求
protected $middleware = [
//...
CSUNMetaLab\ForceHttps\Http\Middleware\ForceHttps::class,
// You can also use this based on Laravel convention:
// 'CSUNMetaLab\ForceHttps\Http\Middleware\ForceHttps',
//...
];
发布所有内容
最后,运行以下Artisan命令以发布所有内容
php artisan vendor:publish
以下资产已发布
- 配置(标记为
config
)- 这些将放入您的config
目录
所需环境变量
您已将控制应用程序流量使用的协议的环境变量添加到.env
文件中。
FORCE_HTTPS
是否在所有URL上强制使用HTTPS。默认为false
,以防止在安装时直接强制HTTPS导致意外问题。
中间件
强制HTTPS中间件
此类的命名空间为CSUNMetaLab\ForceHttps\Http\Middleware\ForceHttps
。
该中间件执行以下步骤
- 检查应用程序配置是否请求强制HTTPS流量
- 如果是,则执行以下步骤
- 将请求URI解析为绝对URL,以便它也可以看到协议
- 检查
HTTPS
服务器变量是否为非空值或设置为off
- 如果协议不是
https:
,则将其替换为https:
并返回重定向
- 如果不是,则将请求实例传递到管道中的下一个配置的中间件