这可能是我的疏忽,但我想知道设置默认的pagenate基本网址的正确方法是什么。
我们的域位于https://domain.com
,我们已设置配置app.url
,但分页似乎仍然使用http://domain.com
(请注意该方案为http
而非{{ 1}})在视图中生成url时。我想知道如何在不编写https
的情况下如何做到这一点。
(我们正在使用Laravel 4.1)
更新:我们也遇到了setBaseUrl
同样的问题,Laravel意识到我们想要使用Form::open
代替https
的网址的设置在哪里?它不应该使用http
作为基本网址吗?
答案 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文档中没有记录此功能)