Laravel route() 方法生成 HTTPS 链接
“
使用反向代理时Laravel的asset()或route()方法,默认并未去判断http或https,默认是http,除非传递第二个参数为true,会生成https链接。
”

使用反向代理时 Laravel 的 asset()
或 route()
方法,默认并未去判断 http 或 https,默认是 http, 除非传递第二个参数为 true,会生成 https 链接。
我们项目中,不可能因为一个 https,把所有连接全部改掉。本地的话,我们还得使用 http。
搜索了一些资料,更好的方案,应该如下:
强制 Laravel 使用 HTTPS
在 .env
文件添加
IS_HTTPS=true
在 Providers\AppServiceProvider
(或者创建其他的 ServiceProvider
并注册) 的 Boot
方法中添加:
if(env('IS_HTTPS')){
URL::forceScheme('https');
}
如果是 Laravel 5.3 以下版本,则需要使用:
\URL::forceSchema('https');
定义路由时制定 HTTPS
Route::get('/', ['uses' => 'TestController@index', 'https'])->name('index')
Route::group(['https'], function () {
// your routers
});
27