關於配置laravel的https,重點提下laravel內的,必須要操作的幾個地方。
第一個位置 .env文件
目的:設置網站默認地址
APP_URL=https://www.你的域名.com // 注意:這這里是https
第二個位置 App\Providers\AppServiceProvider.php 文件
目的:替換所有的訪問為https
public function boot(UrlGenerator $url)
{
//HTTPS
$url->forceScheme('https'); //這里用https,沒有的話自己添加下
}
第三個位置 vendor/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php文件
目的:處理分頁連接也為https開頭的
Paginator::currentPathResolver(function () {
//return $this->app['request']->url(); // 注釋掉這一行
$newUrl = $this->app['request']->url();
return str_replace('http', 'https', $newUrl); //替換默認的http
});
強制 Laravel 使用 HTTPS
在你的 Providers\AppServiceProvider 的 boot 方法中添加:
\URL::forceScheme('https');
Done. 現在你的所有生成的路由鏈接已經默認是 HTTPS 了。當然你也可以用 Nginx 來做非 HTTPS 跳轉,只是我覺得這個方法更加簡單。
注意:
forceScheme 這個函數在 5.4 的時候更換過名稱 , L5.3 及以下版本請使用
\URL::forceSchema('https');。

public function boot()
{
//
$this->app['request']->server->set('HTTPS', $this->app->environment() != 'local'); //讓Laravel支持https,且區分本地
}
