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访问网站时的路由}或者{通过其他域访问网站时的路由}中设置一个条件。在路线上,不要放置控制器标记,而是将其放置在默认值中。