【问题标题】:Redirect to a route if the request is not correct如果请求不正确,则重定向到路由
【发布时间】:2021-03-28 09:56:57
【问题描述】:

我的问题是如果用户尝试使用未在“网络”路由中定义的请求方法访问页面,则重定向用户。目前这会引发Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException 错误:

此路由不支持 GET 方法。支持的方法:POST。

【问题讨论】:

  • 这段代码来自哪里?
  • 如果有人访问GET 路由,该路由在web.php laravel 中定义为POST,我只想进行重定向
  • 让您的异常处理程序处理该异常

标签: php laravel laravel-routing


【解决方案1】:

你可以使用如下的路由定义


Route::any('/{any}', function(Request $request) {

    return redirect('/'); //or any other route preferred
})
->where('any', '.*');

将此定义放在所有路由的末尾。

【讨论】:

    【解决方案2】:

    您可以利用 Fallback Route 功能

     Route::fallback(function ()
    {
        return redirect()->route('home'); // or redirect()->url('home')
    });
    

    请注意,备用路由应始终是您的应用程序注册的最后一个路由 https://laravel.com/docs/8.x/routing#fallback-routes

    【讨论】:

    • 感谢大家的帮助 fallback 解决了我的问题。
    猜你喜欢
    • 2017-05-14
    • 1970-01-01
    • 2019-01-13
    • 2014-01-13
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 2014-03-06
    相关资源
    最近更新 更多