Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php kohana 3.1路由,在url中设置控制器转发域_Php_Url_Routing_Kohana 3_Bootstrapping - Fatal编程技术网

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

Php kohana 3.1路由,在url中设置控制器转发域,php,url,routing,kohana-3,bootstrapping,Php,Url,Routing,Kohana 3,Bootstrapping,我想做这样的网址:http://somecontroller.example.com其中somecontroller将是任何控制器。。。我正在使用Kohana3.1 我知道路线,也知道很多路线,但我没有这样的路线 我在引导中有这些默认路由: Route::set('default', '(<controller>(/<action>(/page<page>)(/<id>)))') ->defaults(array(

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

我知道路线,也知道很多路线,但我没有这样的路线

我在引导中有这些默认路由:

Route::set('default', '(<controller>(/<action>(/page<page>)(/<id>)))')
    ->defaults(array(
                'directory'  => 'index',
        'controller' => 'main',
        'action'     => 'index',
    ));
Route::set('default','(/(/page)(/))))
->默认值(数组)(
'目录'=>'索引',
'控制器'=>'主',
“操作”=>“索引”,
));

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',
    ));
$controller=preg\u match('/^([\w]+)\.example\.com$/',$\u服务器['HTTP\u主机'],$match)
? $匹配[1]
:“主要”;
路由::set('默认','((/page)(/)'))
->默认值(数组)(
'目录'=>'索引',
“控制器”=>$controller,
“操作”=>“索引”,
));

但是,此路由在控制台(
php index.php--uri=
)中不起作用,因为未定义
HTTP\u主机。

谢谢您的回答。。。我在我的引导中添加了这段代码,但仍然不起作用。。。我需要的正是这样的网址。。。无论这是通过引导还是通过.htaccess进行的,或者如果是通过任何其他方法进行的……使用
$\u服务器['HTTP\u HOST']
,您都可以将路由更改为您想要的任何路由。你只需要在($\u SERVER['HTTP\u HOST']='somecontroller.example.com'){通过somecontroller.example.com访问网站时的路由}或者{通过其他域访问网站时的路由}中设置一个条件
。在路线上,不要放置控制器标记,而是将其放置在默认值中。