gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 23:47:16 25 4
gpt4 key购买 nike

我一直在查看十月 CMS 路由 ( https://octobercms.com/docs/plugin/registration#routing-initialization ) 的文档,但我认为我遗漏了一些东西。我有一个名为“deals”的页面,它呈现一些基本信息以及一个插件(称为“deals”)组件。该页面通常出现在 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');
});

它提示找不到“交易” View 。我做错了什么?

此外,我如何路由它以便我的主页
http://www.example.com

将路由到
http://www.example.com/deals

最佳答案

在 OctoberCMS 和它所基于的 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 的路由参数并将重定向任何以 /deals 开头的请求并以您的 /deals 的数字结尾路线。这意味着它将路由 /deals1 , /deals2 , /deals3等到 /deals .

第二条路线会将您的主页重定向到 /deals .

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

根据您的评论,如果您想重定向 /deals[any-number]/[anything]/deals/[that-same-anything]那么你会添加一个 optional route parameter到第一条路线。那看起来像这样:

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

当然,如果是 /deals/[anything]路由不存在,那么你会得到一个 404。

关于php - 十月 CMS - 如何正确路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35350240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com