是否可以在cakephp中执行特定于域的路由?
例如,假设我有2个域:manufacturer.com
和productname.com
productname.com
停在manufacturer.com
。
我想创建一条这样的路线:
Router::connect('http://www.productname.com/', array('controller' => 'products', 'action' => 'view', 'productSlug'));
所以manufacturer.com的索引基本上是默认的pages/index
,但对于productname.com
,它应该是products/view/productSlug
这可能与Cake有关吗?
答案 0 :(得分:4)
我要用我提出的解决方案回答我自己的问题。
除了尝试检查路由中的域之外,更好的方法是在定义路由之前检查主机名。例如:
if($_SERVER['HTTP_HOST']=='productname.com')
Router::connect('/', array('controller' => 'products', 'action' => 'view', 'productSlug'));
else
Router::connect('/', array('controller' => 'pages', 'action' => 'index'));
有什么意见吗?是好是坏?我还没有测试过,但至少我没有看到任何错误:)
答案 1 :(得分:1)
这是可能的,但我可能不会使用路线来做到这一点。主要是因为当涉及到他们时我不是巫师;)。
为了您想要的灵活性,我认为您可以将所有请求路由到集中控制器(实际上可能是您的AppController)。然后让该控制器确定调用不同控制器和操作的逻辑。