Laravel Admin 和 Dcat Admin 强制生产环境前台和后台 Https 的配置项

  1. 前台的配置:routes/web.php 文件中增加以下代码。

    use Illuminate\Support\Facades\URL;
    // 增加个判断
    if (env('APP_ENV') == 'production') {
         URL::forceScheme('https');
    }
  2. 后台的配置:.env 文件增加 。

    #是否admin使用 https
    ADMIN_HTTPS=true

    这个地方增加到 .env 文件其实是因为 config/admin.php 文件中又对应的配置项,它的值是获取 .env 文件中的配置的值。

    'https' => env('ADMIN_HTTPS', true),
  3. 我这边有一个例子,在后台登录的时候没有配置 ADMIN_HTTPS=true,导致后台链接跳转到 http:// 上。
    Laravel Admin 和 Dcat Admin 强制生产环境前台和后台 Https 的配置项
    Laravel Admin 路径为 vendor/encore/laravel-admin/resources/views/login.blade.phpDcat Admin 路径为 vendor/dcat/laravel-admin/resources/views/pages/login.blade.php 登录页面的 Form 表单的 action 属性的链接如下:

    ...
    <form action="{{  admin_url('auth/login') }}" method="post">
    ...

    然后看一下 Laravel AdminDcat Adminadmin_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);
     }
Xiao Peng
laravel_peng
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 3

这个配置在apache或者nginx实现会更好

1年前 评论
laravel_peng (楼主) 1年前
laravel_peng (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!