Возможно ли, что FuelPHP не пропустит правую сторону маршрута?
В 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
)?
2 ответа
Только направляя его конкретно, например, направляя в то же место, что и ваш _404_
контроллер. Конечно, вы также можете сделать это для всего контроллера:
'users/account(/:any)' => 'my/404/route',
Таким образом, прямой вызов на этом контроллере всегда будет идти к вашему 404.
Конечно, если ваши маршруты заканчиваются подстановочными маршрутами, такими как ':any' => 'catch/everything/$1'
тебе не нужно этого делать.
Для полноты: если вы хотите разрешить только вызовы HMVC, но не иметь доступа к URI, вы также можете перехватить его в самом контроллере. Либо в методе before() (для всего контроллера), либо в отдельных методах:
// throw a 404 if accessed via the URI
if ( ! \Request::active()->is_hmvc())
{
throw new \HttpNotFoundException();
}