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?

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

报告相同问题?

悬赏问题

  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd