gpt4 book ai didi

php - 关闭 Kohana 3 中的默认路由?

转载 作者:行者123 更新时间:2023-12-02 00:56:08 24 4
gpt4 key购买 nike

我相信我知道如何做到这一点,但想向我出色的社区窥视者进行验证。 =)

这是一个例子:

我有一个名为“tami”的 Controller 类,其操作为“index”。

我知道,如果我希望有人通过“/tami/”或“/tami/index”以外的 URL 访问该 Controller /操作组合,那么我应该添加一条路由,如下所示:

Route::set('pretty_tami', 'these-are-my-initials(/<action>)')
->defaults(array(
'controller' => 'tami',
'action' => 'index',
));

但是,用户仍然可以通过 /tami/ 访问此页面。

如何关闭默认路由,以便我定义的路由唯一有效?

我假设我可以删除在 kohana/application/bootstrap.php 中找到的默认路由。那是对的吗?或者这会破坏其他东西吗?

最佳答案

我的说法与 @simshaun 完全相同 - 要么删除默认路由(使其他 Controller 无法访问),要么检查 Controller_Tami 中的 before() 函数uri 来查看它是否是您想要的。

如果您使用的是 Kohana 3.1,you can now use lambda logic/anonymous functions to define your routes .

这样的事情会从 Controller 中取出额外的路由逻辑(这很好,因为我们将其保留在一个地方):

Route::set('default', function($uri)
{
if ($uri == 'tami' OR $uri == 'tami/index')
{
// Route not allowed by the default methods
throw new Kohana_404_Exception("Route not permitted");
}
},
'(<controller>(/<action>(/<id>)))'
);

我还没有使用过的东西,但它看起来非常强大。

关于php - 关闭 Kohana 3 中的默认路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5396333/

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