加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 十月CMS – 如何正确路由

发布时间:2020-12-13 16:35:58 所属栏目:PHP教程 来源:网络整理
导读:我一直在审查10月CMS路由( https://octobercms.com/docs/plugin/registration#routing-initialization)的文档,但我认为我缺少一些东西.我有一个名为“交易”的页面,它提供了一些基本信息以及插件(称为“交易”)组件.网页通常出现在网址: http://www.example
我一直在审查10月CMS路由( https://octobercms.com/docs/plugin/registration#routing-initialization)的文档,但我认为我缺少一些东西.我有一个名为“交易”的页面,它提供了一些基本信息以及插件(称为“交易”)组件.网页通常出现在网址:
http://www.example.com/deals

但是,我想创建一个路由,以便有人访问url:

http://www.example.com/deals2

它会自动将它们路由到

http://www.example.com/deals

我知道我应该在我的插件目录中创建一个routes.php文件.但是,当我尝试使用

Route::get('/deals2',function()
{
        return View::make('deals');
});

它抱怨说它找不到“交易”的看法.我究竟做错了什么?

此外,如何路由它,使我的主页

http://www.example.com

将路线

http://www.example.com/deals
在10月的CMS和Laravel的基础上,将一条路线重定向到另一条路线可以做到这一点:
// Redirect /deals2,/deals3,... to /deals
Route::get('{dealSlug}',function($dealSlug) {
    return redirect('deals');
})->where('dealSlug','^deals[0-9]+');

// Redirect homepage to /deals
Route::get('/',function() {
    return redirect('deals');
}

第一条路线使用路线参数为regex constraint,并将重定向以/交易开始的任何请求,并以数字结尾到您的/交易路线.这意味着它将路由/交易1,/交易2,/交易3等等/交易.

第二条路线将重定向您的主页/交易.

当然,重定向会花费额外的请求.如果你不想这样做,那么你可以在Apache或Nginx中进行重定向.

根据你的评论,如果你想重定向/交易[任意数量] / [任何东西]到/交易/ [同样的任何东西],那么你将添加一个optional route parameter到第一条路线.那将是这样的:

// The new first route
Route::get('{dealSlug}/{extra?}',function($dealSlug,$extra = '') {
    return redirect('deals/' . $extra);
})->where('dealSlug','^deals[0-9]+');

当然,如果/ deals / [任何]路由不存在,那么你会得到一个404.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读