laravel8 中中间件 redirect 及 route 助手函数生成 url 为携带域名问题
資深大佬 : proxytoworld 0
配置:nginx 监听 192.168.50.1:80,反向代理到 127.0.0.1:8085 配置 host 文件使得 192.16850.1 和 laravel.xxx.com 对应
route 函数问题
我在 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', [ControllersTestController::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 IlluminateHttpRequest $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(AppHttpMiddlewareFlushPage::class);
我访问 laravel.xxx.com/asdfasdfasdfasd 后会重定向到首页即 laravel.xxx.com 但是他给我重定向到了 http://127.0.0.1:8085/laravel/public/,为什么在中间件内重定向不会携带域名,在 web.php 用回调函数就会携带域名?
大佬有話說 (0)