gpt4 book ai didi

php - Codeigniter:将所有与 Controller 名称不匹配的请求发送到默认 Controller

转载 作者:可可西里 更新时间:2023-11-01 00:37:15 26 4
gpt4 key购买 nike

我正在从事一个涉及两种 URL 的项目,一种遵循标准 CI 模式

http://fancysite.com/controller/

另一个提出了以下方案:

http://fancysite.com/category

我希望第二个以 category 作为参数调用默认 Controller 的 handlecategory(或类似的东西)函数。

如果您还可以告诉我如何让像 http://place.fancysite.com/ 这样的 URL,那就太好了如果该 URL 后面没有类别,则调用仅将 place 作为参数传递的相同函数,或者如果是,则同时传递 placecategory

附加数据:我已经知道所有 Controller 的名称、地点、类别。

最佳答案

您可以使用 codeigniter 的 URI routing为了实现这一点 -

在路由文件的末尾插入这个 -

$route[':any'] = 'path of the default controller';

所有其他路由都应该放在上层代码之上。

假设 codeigniter 遇到的 URL 是 -

http://fancysite.com/category

所以首先 codeigniter 将搜索是否有名为 category 的 Controller 。如果没有得到,那么它将检查路由文件以检查是否存在像这样指定的任何路线 -

$route['category/:any'] = 'actual path';

如果在这种情况下没有指定这样的路由,codeigniter 将通过这个请求您在最后一行中提到的默认 Controller 的路径路线。

即使链接包含子域,请求也无所谓相同的默认 Controller 。

现在您可以为子域处理或其他任何内容插入逻辑在默认 Controller 中。

您甚至可以在我们的 url 示例中获取参数 'category' 这是在 URL 中使用 codeigniters URI辅助类如下 -

$this->uri->segment(1);

关于php - Codeigniter:将所有与 Controller 名称不匹配的请求发送到默认 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4507676/

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