自定义路由推翻新星路线

问题描述 投票:0回答:2

我有一个问题,我似乎无法使用新星作为后端的社论网站来解决。我通过它的工作完美的配置更名从/新星/后端的路径。

现在我的前端需要非常一般的路由结构,因为大多数的逻辑被放置在控制器,给用户的某些额外的灵活性。

当我这些路由添加到我的网络的路由,后端都到了404。很显然,我的第二个规则/后端相匹配,并且因为是我的数据库中没有该名称的页面,它失败。

我能做些什么,以确保新星的路由被首先解析,或者说/后端请求,被我忽略的路线?

Laravel V5.7。试图惯用的招数 - PHP工匠配置:清晰,PHP工匠路线:明确 - 以及将一个正则表达式的路线:

->where('seite', '^(?!backend).*$');

当前的网络路由文件:

Route::get('/', 'PagesController@frontPage');
Route::get('/{seite}/{zweit?}/{dritt?}', 'PagesController@anyPage');

/后端应该由新星,不是我的自定义路由处理。

laravel laravel-routing laravel-nova
2个回答
0
投票

我曾在我的路线文件通用蛞蝓类似的问题。我设法限制为蛞蝓字母数字字符的模式(包括破折号,连字符和斜线*),但排除新星路(nova-apinova-vendor)以及自定义的新星路(backend)。

这是routes/web.php文件的样子:

Route::get('/{seite}', 'PageController@anyPage');

而在RouteServiceProviderapp/Providers/RouteServiceProvider.php模式:

public function boot()
{
    Route::pattern('seite', '^(?!backend|nova-api|nova-vendor).[a-zA-Z0-9-_\/]+$');

    parent::boot();
}

*)请注意,这种模式也让像/seite/zweit/drei蛞蝓如图上面的问题。


0
投票

那么,到底是这一点,没有的伎俩:

->where('seite', '^(?!backend).*$');

在我以前的努力得到它的工作,我一定打破别的东西。我做了Laravel的干净重新安装在新,移到我的文件,并添加了正则表达式,它现在就像一个魅力。

© www.soinside.com 2019 - 2024. All rights reserved.