Php 10月CMS-如何正确路由

Php 10月CMS-如何正确路由,php,laravel,routing,octobercms,Php,Laravel,Routing,Octobercms,我一直在查看10月份CMS routing()的文档,但我认为我遗漏了一些东西。我有一个名为“交易”的页面,它呈现一些基本信息以及一个插件(称为“交易”)组件。页面通常显示在url处: http://www.example.com/deals 但是,我希望创建一个路由,以便在有人访问url时: http://www.example.com/deals2 它将自动将它们路由回 http://www.example.com/deals 我知道我应该在我的插件目录中创建一个routes.php文

我一直在查看10月份CMS routing()的文档,但我认为我遗漏了一些东西。我有一个名为“交易”的页面,它呈现一些基本信息以及一个插件(称为“交易”)组件。页面通常显示在url处:

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
试一试
Route::get('/deals2',function(){return Redirect::to('/deals2')})将以额外请求为代价重定向浏览器。

在OctoberCMS和它所基于的Laravel中,要将一条路由重定向到另一条路由,可以执行以下操作:

//重定向/deals2,/deals3。。。交易
路由::get({dealslaug}),函数($dealslaug){
返回重定向(“交易”);
})->其中('dealSlug','^deals[0-9]+');
//将主页重定向到/deals
路由::获取('/',函数(){
返回重定向(“交易”);
}
第一条路由使用带有a的路由参数,并将任何以
/deals
开头并以数字结尾的请求重定向到您的
/deals
路由。这意味着它将
/deals1
/deals2
/deals3
等路由到
/deals

第二条路线将把你的主页重定向到
/deals

当然,重定向将需要额外的请求。如果您不想这样做,那么您可以在Apache或Nginx中执行重定向

根据您的评论,如果您想将
/deals[any number]/[anything]
重定向到
/deals/[that same anythis]
,那么您需要在第一条路线中添加一个。如下所示:

//新的第一条路线
路由::get('{dealslaug}/{extra?}',函数($dealslaug,$extra=''){
返回重定向(“交易/”.$extra);
})->其中('dealSlug','^deals[0-9]+');

当然,如果该
/deals/[anything]
路由不存在,那么您将得到一个404。

如果有帮助,我在我创建的网站上对主页重定向使用了“脏”解决方法。将此添加到.htaccess文件:
RewriteRule^/?$http://www.example.com/deals  [R=301,北卡罗来纳州,北卡罗来纳州]
你可以对你想要重定向的另一个url做同样的操作,但是,这只是我使用的一个变通方法,因为我不知道如何正确地做……所以这不是一个真正的答案。这是一个很好的破解,但我希望有一个内置的方法。谢谢你的评论。你是想具体地重定向
/deals2
,还是任何类似于
/deals[some number]
的路线?这非常有效,谢谢。有一个问题,您如何调整第一个重定向,使其能够与其他url段一起工作(例如/deals2/ca toronto将转到/deals/ca toronto)?