Php 拉维尔路由问题

Php 拉维尔路由问题,php,laravel,laravel-4,laravel-routing,Php,Laravel,Laravel 4,Laravel Routing,我使用的是laravel框架。我已经设置了两个路由,它们采用了类似example.com/route/{dir\u name}的参数。当我经过一个有孩子的dir时,它认为这是另一条路线。有办法绕过它吗 我正在使用以下代码: Route::get('/route/something/{path}',array('as'=>'something',function($path){ return $path; })); 当我使用/route/something/home/user/d

我使用的是
laravel
框架。我已经设置了两个
路由
,它们采用了类似
example.com/route/{dir\u name}
的参数。当我经过一个有孩子的dir时,它认为这是另一条路线。有办法绕过它吗

我正在使用以下代码:

Route::get('/route/something/{path}',array('as'=>'something',function($path){
     return $path;
}));

当我使用
/route/something/home/user/dev
时,它抛出一个
Symfony\Component\HttpKernel\Exception\NotFoundHttpException
异常

你有example.com/route/{dir\u name}

我假设您的路由是在routes.php中定义的

Route::get('/route/{dir_name}', [
    'as' => 'someRoute',
    'uses' => 'SomeController@index'
]);
在SomeController.php文件中,您将有一个接受{dir_name}的方法

public function index($dir_name) {
return $dir_name;
}
相反,你有路线

Route::get('/route/something/{path}',array('as'=>'something',function($path){
     return $path;
}));
/路由/某物/{path}


如果你想在你的URL中找到某个,那么它必须在路径中。这就是为什么您会得到NotFoundHttpException的原因。您可以尝试使用正则表达式对route参数使用约束

Route::any('/route/{dir_name}', function ($dir_name) {
    return $dir_name;
})->where('dir_name', '.*');

请参阅文档部分,特别是“正则表达式路由约束”部分。

粘贴完整的路由文件。让我看看我是否能帮上忙,我只是想把一些目录传递给我的url,比如/route/{dir here},但是当laravel在路径中遇到“/”时,它会将其视为一个路由,所以我应该如何阻止它这样做>@arkhamDev,“something”不一定在路由中,您可以使用路由约束来实现这一点。检查我的答案,看看有多快。谢谢。我会查看路线限制。很酷,很高兴知道:)