Laravel形成HTTPS动作

时间:2015-02-17 00:33:29

标签: php laravel https

我在一个我想成为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填写了错误的协议?我该如何设置正确的?

1 个答案:

答案 0 :(得分:1)

使用https选项定义您的路线,并将该路线调用以形成行动。 例如“

路线

Route::group(array('https'), function(){
    // all of our routes
    //for your form acction
    Route::post('form', array('as' => 'form/action', 'uses' => 'ExampleController@postForm'));  
}

因此,https组下的路由应该是https,甚至是表单的路由。