duanjianxiu9400 2019-01-31 13:19
浏览 460
已采纳

使用前缀时路由URI通配符

I have been using a route wildcard for my root path (/) successfully until I decided to move my frontend files behind a prefix (/crm). After that I am getting 404's and have no idea how to solve it. I need the wildcard as a catch all for my Javascript frontend routes (/crm/orders/details/12345) which otherwise result in a 404.

So when I remove prefix('crm') everything as set up with the below code works fine. Or when I remove {any} plus the matching regex, it works partially, on one level deep routes (/crm works, but /crm/orders does not).

But when I have both the prefix and wildcard /crm gives me a 404.

How do I need to configure this?

Works

Providers/RouteServiceProvider.php:

Route::namespace('App\Http\Controllers')
  ->group(base_path('routes/crm.php'));

routes/crm.php

Route::get('/{any}', function ()
{
    return view('crm');
})->where('any', '.*');

Does not work

Providers/RouteServiceProvider.php:

Route::prefix('crm')
  ->namespace('App\Http\Controllers')
  ->group(base_path('routes/crm.php'));

routes/crm.php

Route::get('/{any}', function ()
{
    return view('crm');
})->where('any', '.*');

Output of php artisan route:list is as follows

| Domain | Method | URI |Name | Action | Middleware  |
*snap*
| | GET|HEAD | crm/{any} | | Closure | |
*snap*
  • 写回答

1条回答 默认 最新

  • duanjianlu0506 2019-01-31 13:50
    关注

    You need to configure {any} as an optional parameter. In your particular case, the route will only catch crm/something routes (where something can be of one or more segments).

    Route::prefix('crm')->group(function () {
        Route::get('/{any?}', function () {
            dd("I am here");
        })->where('any', '.*');
    });
    

    However, if you add the {any} as optional, it will also catch /crm. Is this what you are looking for?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法