使用CakePHP路由器将方法链接到子域

时间:2013-01-11 09:30:03

标签: php cakephp

我希望我的Cake应用中的某些网址成为子网域。

例如,make:domain.com/posts/index.json变为api.domain.com/posts

我试过了:

$subdomain = substr(env("HTTP_HOST"), 0, strpos(env("HTTP_HOST"), ".")); 

if ($subdomain == 'api') {
    Router::connect('/', array('controller' => 'posts', 'action' => 'index')); 
}

但它只会显示404.注意我已关闭通配符子域,以便随机子域仍然不会加载主站点(是否可以允许某些子站点?例如,允许api.domain.com但在fake.domain.com上出错了)

另外,如何将JSON扩展作为路由器阵列的一部分来处理?

2 个答案:

答案 0 :(得分:0)

2.x之后的Cake没有任何支持子域的东西。已经就此进行了讨论/工作,但不确定何时可以使用。

直到你需要忍受正常的网址或大量的黑客攻击。

答案 1 :(得分:0)

您可以在routes.php中使用以下代码 还要确保您已经可以访问子域。

$subdomain = substr( env("HTTP_HOST"), 0, strpos(env("HTTP_HOST"), ".") );
if( strlen($subdomain) > 0 && $subdomain == "api" ) {
    Router::connect('/:action/*', array('controller' => 'posts'));
}