【问题标题】:ProxyPass: Mixed Content in Laravel HTTPSProxyPass:Laravel HTTPS 中的混​​合内容
【发布时间】:2019-09-06 02:47:47
【问题描述】:

我正在使用Laravel 5.8

目前我有这个网站:示例名称

https://www.myssldomain.com/ewallet

我有这个网站:样本名称

http://my-aws-public-ip/login

当用户触发/搜索此链接时,使用我的myssldomain.com 中包含的Proxy Passhttps://www.myssldomain.com/ewallet/login

浏览器会加载本站内容http://my-aws-public-ip/login

proxy pass 工作正常,但问题是 stylesjavascript 未加载,浏览器显示 Mixed Content 因为 my-aws-public-ip 站点加载为 HTTP 而不是 HTTPS

目前

我把config/app.php改成了

'url' => env('APP_URL', 'https://www.myssldomain.com/ewallet/'),

我的

.env 文件我将APP_URL 更改为https://www.myssldomain.com/ewallet/

我尝试了什么

还有

我遵循了这些步骤,但似乎也不起作用。

https://coderwall.com/p/g9qkea/mixed-content-issue-content-must-be-served-as-https-in-laravel

我也尝试更改以下内容以解决问题

APP_ENV=production

APP_DEBUG=false

APP_URL=https://www.myssldomain.com/ewallet/

并在web.php开头添加这段代码

if (App::environment('production')) {
URL::forceScheme('https');
}

但仍然无法在我身边工作。 我需要设置什么来确保这能正常工作吗?

预期

使用来自 myssldomain.com 的代理传递

【问题讨论】:

    标签: laravel ssl https


    【解决方案1】:

    解决了我自己的问题!由于代理使用 HTTPS 而 Laravel 默认使用 HTTP 请求,您可以尝试将其配置为 HTTPS。

    像这样

    config/app.php

    'url' => env('APP_URL', 'https://www.myssldomain.com/ewallet'),
    'asset_url' => env('ASSET_URL', 'https://www.myssldomain.com/ewallet'),
    

    .env

    APP_NAME=XX
    APP_ENV=XXX
    APP_KEY=base64:XXX
    APP_DEBUG=true
    APP_URL=https://www.myssldomain.com/ewallet
    

    app/Providers/AppServiceProvider.php

    public function boot()
    {
        if (env('APP_ENV') !== 'local') {
            $this->app['request']->server->set('HTTPS', true);
        }
    }
    

    routes/web.php

    在代码的开头加上这个;

    URL::forceRootUrl('https://www.myssldomain.com/ewallet');
    

    完成此操作后,您的 CSS/JS 将被加载为 HTTPS 而不是 HTTP。

    【讨论】:

    • 你刚刚把我从地狱里救了出来。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2020-03-21
    • 2015-02-11
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    • 2020-08-18
    相关资源
    最近更新 更多