Kohana (as well as CodeIgniter and most of other frameworks) relies on the Front-Controller Pattern (index.php
) so unless you deeply hacked it I cannot see how you don't need to rely on it.
After a quick look at the form::open()
source:
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);
}
// ...
}
I don't think it's possible without specifying a absolute URL. Might be a solution if you don't mind doing:
form::open('http://domain.com/my-site/bla');
Otherwise your best approach would be to str_replace()
or override the it with an application helper.
If you edit the url
helper (/system/classes/kohana/url.php
) and change line 71 from this:
return URL::base(TRUE, $protocol).$path.$query.$fragment;
To this:
return URL::base(FALSE, $protocol).$path.$query.$fragment;
All index.php
appearances should be gone.
I'm not sure if this will work, but in application/bootstrap.php
change this:
Kohana::init(array('base_url' => '/kohana/'));
To this:
Kohana::init(array('base_url' => '/kohana/', 'index_file' => ''));