2013-01-11 60 views
0

我正在寻找使我的Cake应用程序中的某些Url成为子域名的基础。使用CakePHP路由器将方法链接到子域名

因此,例如使: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注我已经关闭了通配符子域,使随机子域别t仍然加载主站点(是否有可能允许某些?因此,例如允许api.domain.com,但在fake.domain.com错误)

也如何处理JSON扩展作为路由器阵列?

回答

0

从2.x开始,Cake没有任何东西来支持子域。有关于此的谈判/作品,但不知道何时可用。

直到它是你将需要与普通的URL或大量的黑客生活。

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')); 
}