Laravel 4是否可以使用每个项生成正确的HTTPS网址?或者至少生成相对URL而不是绝对(我无法理解为什么这不是默认行为)。
通过Laravel Eg生成的每个表单:
{{ Form::open(array('route' => 'login', 'method' => 'post')) }} //http://example.com/login
将始终使用http作为协议。在Laravel 3中有open_secure方法,但这不再是Laravel 4中的内容。
Laravel Eg生成的每条路线:
{{ URL::route('login') }} //http://example.com/login
等等
注意:您可以使用以下方式绕过路线
{{ URL::route('login', array(), false) }} // /login - This is perfect behavior
这会创建一个相对URL,它对每个协议都是安全的。
注2 :创建过滤器不是可接受的解决方案。它会在POST表单中产生问题,并在每个页面上创建重定向。为什么要增加负载和等待时间?
答案 0 :(得分:0)
Route::get('login', array('https', function()
{
return 'Must be over HTTPS';
}));
如果路由未定义为仅http或仅https,则使用当前请求的方案(source)。
答案 1 :(得分:0)
如果您的负载均衡器和网站之间的通信也是HTTPS,那么matpop的解决方案将起作用。
如果负载均衡器处理请求的HTTPS部分,我建议添加标头并检查该标头是否存在且是否为预期值。如何配置它(可能它已经默认配置)将取决于您的负载均衡器。