在config/routes.php
<?php
return array(
'account/profile/change_password' => 'users/account/change_password',
);
我可以在浏览器中访问site.com/users/account/change_password
和site.com/users/account/change_password
。
有没有办法将它限制在左侧(即site.com/users/account/change_password
)?
答案 0 :(得分:1)
仅通过特定路由,例如将其路由到与_404_
控制器相同的位置。当然你也可以为整个控制器做这件事:
'users/account(/:any)' => 'my/404/route',
这样,直接调用此控制器将始终转到您的404.
当然,如果您的路线以':any' => 'catch/everything/$1'
之类的外卡路线结束,则无需执行此操作。
答案 1 :(得分:0)
完成:如果您只想允许HMVC调用,但不允许URI访问,您也可以在控制器本身中捕获它。在before()方法中(对于整个控制器)或在各个方法中:
// throw a 404 if accessed via the URI
if ( ! \Request::active()->is_hmvc())
{
throw new \HttpNotFoundException();
}