在中间件中使用时,Laravel 6重定向显示文件的完整路径

在中间件中使用时,Laravel 6重定向显示文件的完整路径,laravel,url,redirect,routes,filepath,Laravel,Url,Redirect,Routes,Filepath,我对拉威尔有意见。我创建了中间件,它使用route将我重定向到主页。 问题是,当我在控制器中使用重定向时,我将获得类似于example.com/的url,但当我在中间件中使用重定向时,我将获得类似于example.com/project/public/的url。为什么呢?当我使用控制器(我想要这个:example.com/)时,我怎样才能得到像这样的url (我已将.htaccess配置为将公用文件夹用作根文件夹) 中间件代码(结果是:example.com/project/public/) 控

我对拉威尔有意见。我创建了中间件,它使用route将我重定向到主页。 问题是,当我在控制器中使用重定向时,我将获得类似于example.com/的url,但当我在中间件中使用重定向时,我将获得类似于example.com/project/public/的url。为什么呢?当我使用控制器(我想要这个:example.com/)时,我怎样才能得到像这样的url (我已将.htaccess配置为将公用文件夹用作根文件夹)

中间件代码(结果是:example.com/project/public/)

控制器代码(结果为:example.com/)

路线是这样的

Route::get('/', 'MyController@main')->name("main");

有人能帮忙吗?谢谢大家!

控制器代码和中间件代码完全相同,对吗?确保在
.env
文件中
APP_URL
设置为正确的URL,然后您还可以使用
redirect()->route('main')而不是将完整的URL传递给重定向函数。是的,没错。是一样的。但结果不同。APP_URL设置为正确的URLredirect()->route('main');结果也一样
public function handle($request, Closure $next)
{
        return redirect(route('main'));
}
Route::get('/', 'MyController@main')->name("main");