Laravel Admin 和 Dcat Admin 强制生产环境前台和后台 Https 的配置项
前台的配置:
routes/web.php
文件中增加以下代码。use Illuminate\Support\Facades\URL; // 增加个判断 if (env('APP_ENV') == 'production') { URL::forceScheme('https'); }
后台的配置:
.env
文件增加 。#是否admin使用 https ADMIN_HTTPS=true
这个地方增加到
.env
文件其实是因为config/admin.php
文件中又对应的配置项,它的值是获取.env
文件中的配置的值。'https' => env('ADMIN_HTTPS', true),
我这边有一个例子,在后台登录的时候没有配置
ADMIN_HTTPS=true
,导致后台链接跳转到http://
上。Laravel Admin
路径为vendor/encore/laravel-admin/resources/views/login.blade.php
和Dcat Admin
路径为vendor/dcat/laravel-admin/resources/views/pages/login.blade.php
登录页面的 Form 表单的 action 属性的链接如下:... <form action="{{ admin_url('auth/login') }}" method="post"> ...
然后看一下
Laravel Admin
和Dcat Admin
的admin_url()
函数的实现:function admin_url($path = '', $parameters = [], $secure = null) { if (url()->isValidUrl($path)) { return $path; } // 是否安全,这里面有两个配置 admin.https 和 admin.secure 它俩配置一个就行。 $secure = $secure ?: (config('admin.https') || config('admin.secure')); return url(admin_base_path($path), $parameters, $secure); }
这个配置在apache或者nginx实现会更好