Kohana (так же как CodeIgniter и большинство других фреймворков) использует Pattern Front-Controller (index.php
), поэтому, если вы не взломали его глубоко, я не могу понять, как вам не нужно полагаться на нем.
После быстрого просмотра источника form::open()
:
public static function open($action = NULL, array $attributes = NULL)
{
if ($action === NULL)
{
// Use the current URI
$action = Request::instance()->uri;
}
if ($action === '')
{
// Use only the base URI
$action = Kohana::$base_url;
}
elseif (strpos($action, '://') === FALSE)
{
// Make the URI absolute
$action = URL::site($action);
}
// ...
}
Я не думаю, что это возможно без указания абсолютного URL. Может быть решением, если вы не против:
form::open('http://domain.com/my-site/bla');
В противном случае лучшим вариантом будет str_replace()
или переопределить его с помощью помощника приложения .
Если вы отредактируете помощника url
(/system/classes/kohana/url.php
) и измените строку 71 следующим образом:
return URL::base(TRUE, $protocol).$path.$query.$fragment;
На это:
return URL::base(FALSE, $protocol).$path.$query.$fragment;
Все index.php
появления должны исчезнуть.
Я не уверен, сработает ли это, но в application/bootstrap.php
измените это:
Kohana::init(array('base_url' => '/kohana/'));
На это:
Kohana::init(array('base_url' => '/kohana/', 'index_file' => ''));