在Laravel 5.2上設置一些路由使用SSL重定向的正確方法是什麼? http->https
如何設置Laravel路線重定向到https?
另外,如果我將http
組件加載到安全頁面,我仍然可以加載http
資產,或者firefox/chrome/IE會有問題嗎?
在Laravel 5.2上設置一些路由使用SSL重定向的正確方法是什麼? http->https
如何設置Laravel路線重定向到https?
另外,如果我將http
組件加載到安全頁面,我仍然可以加載http
資產,或者firefox/chrome/IE會有問題嗎?
如果您需要重定向到Https
那麼在laravel
redirect
中有一個選項,您可能想知道。
沒有爲重定向稱爲redirect()
檢查..vendor\laravel\framework\src\Illuminate\Foundation\helpers.php
文件
if (! function_exists('redirect')) {
/**
* Get an instance of the redirector.
*
* @param string|null $to
* @param int $status
* @param array $headers
* @param bool $secure
* @return \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse
*/
function redirect($to = null, $status = 302, $headers = [], $secure = null)
{
if (is_null($to)) {
return app('redirect');
}
return app('redirect')->to($to, $status, $headers, $secure);
}
}
檢查laravel幫手參數$to = null, $status = 302, $headers = [], $secure = null
沒有爲Https
作爲$secure
一個選項,將其設置爲true,並有你會得到一個Https
EX重定向: redirect('/', 302, [], true)
注:我也有這種事情工作,我沒有得到一個404 error
時,該網站是在Https
和資產裝載槽Http
運行我記得,更好地檢查一遍。 :)
沒有加載安全資產secure_asset()
在Https
在Http
和生產測試時我面臨一些困難幫手,有些資產不加載,並重新方向不工作,什麼我們所做的就是創建一個單獨的助手刪除模式,
if (! function_exists('urlWithoutSchema')) {
/**
* Generate a url for the application without schema.
*
* @param string $path
* @param mixed $parameters
* @param bool $secure
* @return string
*/
function urlWithoutSchema($path = null, $parameters = array(), $secure = null)
{
$url = app('url')->to($path, $parameters, $secure);
return str_replace(parse_url($url, PHP_URL_SCHEME).':', '', $url);
}
}
THEN urlWithoutSchema("https://laravel.com/")
會導致//laravel.com/
如果您使用redirect(urlWithoutSchema("your-site-name.com"))
那麼它將重定向到//your-site-name.com/
這意味着如果您使用Https
網站將重定向到Https
否則爲Http
。
同樣的事情可以使用裝載資產一樣,
<link href="{{ urlWithoutSchema('css/vendor.css') }}" rel="stylesheet" />
然後,當你在Http
css/vendor.css
運行將通過Http
加載,如果你對Https
運行資產將通過Https
加載。
使用這個你能避免一些問題regurding具有Https
和環境沒有Https