配置:nginx 监听 192.168.50.1:80,反向代理到 127.0.0.1:8085 配置 host 文件使得 192.16850.1 和 laravel.xxx.com 对应
我在 host 文件设置了解析
192.168.50.1 laravel.xxx.com
在 web.php 中
Route::get('user/profile', function () {
return 'user profile route naming';
})->name('profile');
// 为指定控制器行为命名
Route::get('phpinfo', [Controllers\TestController::class, 'Test'])->name('phpinfo');
// 使用 route 函数为命名路由生成 url 或者重定向
Route::get('route', function (){
$profile_url = route('profile');
$phpinfo_url = route('phpinfo');
echo "profile:".$profile_url."<br>";
echo "phpinfo:".$phpinfo_url."<br>";
// return redirect()->route('phpinfo');
});
然而我访问 laravel.xxx.com/route 时页面生成的 url 是
profile:http://127.0.0.1:8085/laravel-8/public/user/profile
phpinfo:http://127.0.0.1:8085/laravel-8/public/phpinfo
没有携带上我的域名,按照预设是laravel.xxx.com/user/profile及laravel.xxx.com/phpinfo有人知道为什么会这样吗
我有一个中间件 FlushPage,后置中间件,处理请求之后重定向到首页
class FlushPage
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
* 后置中间件
*/
public function handle(Request $request, Closure $next)
{
$response = $next($request);
sleep(10);
return redirect('/');
}
}
web.php 中
Route::fallback(function (){
return "404";
})->middleware(\App\Http\Middleware\FlushPage::class);
我访问 laravel.xxx.com/asdfasdfasdfasd 后会重定向到首页即 laravel.xxx.com 但是他给我重定向到了 http://127.0.0.1:8085/laravel/public/,为什么在中间件内重定向不会携带域名,在 web.php 用回调函数就会携带域名?