【问题标题】:Laravel 4: setting correct scheme and domain for pagination and formLaravel 4:为分页和表单设置正确的方案和域
【发布时间】:2014-07-25 22:29:39
【问题描述】:

这可能是我的疏忽,但我想知道设置默认分页基本网址的正确方法是什么。

我们的域在https://domain.com 上,并且我们已将配置app.url 设置为这样,但在视图中生成url 时,分页似乎仍然使用http://domain.com(注意方案是http 而不是https)。我想知道如何在不到处写setBaseUrl 的情况下做到这一点。

(我们使用的是 Laravel 4.1)

更新Form::open 也遇到了同样的问题,让 Laravel 意识到我们想要使用 https 而不是 http 的 url 的设置在哪里?不应该使用app.url 作为基本网址吗?

【问题讨论】:

    标签: php laravel laravel-4


    【解决方案1】:

    自己找出答案:

    由于我们的服务器在反向代理(nginx)后面,而内容是通过 HTTPS 提供的,代理是通过 HTTP 完成的,所以我们应该在 nginx 配置中设置以下内容:

    proxy_set_header X-Forwarded-Proto  $scheme; //or just `https`
    

    (与您的 proxy_pass upstream 块相同)

    那么我们可以像这样使用Trusting Proxies 功能:

    $proxies = Config::get('app.trusted_proxies');
    
    // trust any balancer
    if ($proxies === '*')
    {
        $proxies = array( Request::getClientIp() );
    }
    
    // else trust an array of IPs
    if ($proxies && is_array($proxies))
    {
        Request::setTrustedProxies($proxies);
    }
    

    (可以添加到bootstrap/start.php。Laravel 使用 Symfony Request 库,这就是我们链接到他们的文档的原因,因为 Laravel 文档中没有记录此功能)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 2014-11-02
      • 2014-02-24
      • 2021-12-06
      • 2016-04-01
      • 2011-11-10
      相关资源
      最近更新 更多