kohana 3.1路由,设置控制器转发域,在url中

时间:2014-02-18 16:25:18

标签: php url routing kohana-3 bootstrapping

我想制作这样的网址:http://somecontroller.example.com其中somecontroller将是任何控制器......我正在使用Kohana3.1。

我知道路由以及制作许多路线,但我没有这样的路线......

我在bootstrap中有这些默认路由:

Route::set('default', '(<controller>(/<action>(/page<page>)(/<id>)))')
    ->defaults(array(
                'directory'  => 'index',
        'controller' => 'main',
        'action'     => 'index',
    ));

1 个答案:

答案 0 :(得分:0)

Kohana的路由系统只允许您解析URI,因此您无法以干净的方式执行此操作。但是,你可以做这样的事情来实现你想要的行为:

$controller = preg_match('/^([\w]+)\.example\.com$/', $_SERVER['HTTP_HOST'], $match)
? $match[1]
: 'main';

Route::set('default', '(<action>(/page<page>)(/<id>))')
    ->defaults(array(
        'directory'  => 'index',
        'controller' => $controller,
        'action'     => 'index',
    ));

但是,此路由在控制台(php index.php --uri=<uri>)中无效,因为未定义HTTP_HOST