带有通配符的 Laravel 路由总是 404

Posted

技术标签:

【中文标题】带有通配符的 Laravel 路由总是 404【英文标题】:Laravel routes with wildcards always 404 【发布时间】:2012-08-26 08:46:52 【问题描述】:

我刚开始使用 Laravel,我非常喜欢路由的想法,但是我创建的任何带有通配符的路由都会退回到 Laravel 404 路由。

这是我的路线文件:

# This loads fine
Route::get('hello', function()
   return 'Hello!';
);

# This gives me a 404
Route::get('hello/(:any)', function ($name) 
    return "Welcome, $name.";
);

Route::get( array('/'), function()

    return View::make('home.index');
);

Event::listen('404', function()

    return Response::error('404');
);

Event::listen('500', function()

    return Response::error('500');
);

我也尝试过any,但无济于事。

Route::any('hello/(:any)', function ($name) 
    return "Sup, $name?";
);

关于我为什么会得到 404 的任何想法?

编辑: 我想这是我的 php 配置参差不齐的问题,并且没有正确处理类的别名或其他东西。在大多数情况下,添加一个将别名映射到类的辅助类都可以工作。

【问题讨论】:

【参考方案1】:

对于 Laravel 的任何其他新人,这是您使用可选参数设置路由的方式。

Route::get('hello/(:any?)', function ($name = 'default') 
    return "Welcome, $name.";
);

【讨论】:

【参考方案2】:

您的 Apache 重写模块是否启用? 我已经在我的 Laravel 安装上尝试了你的第一条路线,它工作正常。

【讨论】:

是的,我从 Laravel 得到 404,而不是 Apache。我想这只是因为我很傻,不了解路线。它应该是(:any?),并带有传递给匿名函数的默认选项。感谢您的观看!

以上是关于带有通配符的 Laravel 路由总是 404的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5:API 路由 + 通配符路由导致意外行为

Laravel 5.1 通配符路由

Laravel,路由通配符过滤然后控制器

Laravel 4 通配符路由到不同的控制器

在 laravel 5 中通配符到错误控制器的路由

Laravel 5.6 通配符路由在域中未按预期运行