Laravel 4:为分页和表单设置正确的方案和域

时间:2014-06-05 04:17:33

标签: php laravel laravel-4

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

我们的域位于https://domain.com,我们已设置配置app.url,但分页似乎仍然使用http://domain.com(请注意该方案为http而非{{ 1}})在视图中生成url时。我想知道如何在不编写https的情况下如何做到这一点。

(我们正在使用Laravel 4.1)

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

1 个答案:

答案 0 :(得分:2)

自己找出答案:

由于我们的服务器位于反向代理(nginx)之后,虽然内容是作为HTTPS提供的,但代理是通过HTTP完成的,因此我们应该将以下内容设置为nginx config:

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文档中没有记录此功能)