【发布时间】:2015-04-17 15:13:47
【问题描述】:
我在一个我希望仅使用 HTTPS 的应用程序中使用 Laravel。
在https://example.com/p 上显示的一个视图中,我打开了一个这样的表单:
{{ Form::open(['method' => "POST", "id" => "whatever"]) }}
Laravel 将其解析为:
<form method="POST" action="http://example.com/p" accept-charset="UTF-8" id="whatever">
乍一看这看起来不错,但请记住,这是在 HTTPS 页面上,所以在显示页面时我会收到混合内容警告。
但情况会变得更糟。我将服务器配置为将 HTTP 请求重定向到相应的 HTTPS 资源。这意味着,我的浏览器将表单内容发布到服务器,服务器将其重定向到 HTTPS 位置。然后浏览器丢弃 POST 请求并向服务器发送一个常规的 GET 请求,这会产生与用户之前看到的完全相同的页面。
为什么 Laravel 填写了错误的协议?如何设置正确的?
【问题讨论】: