代码之家  ›  专栏  ›  技术社区  ›  jpeltoniemi

CakePHP中的主机名路由

  •  3
  • jpeltoniemi  · 技术社区  · 16 年前

    是否可以在cakephp中执行特定于域的路由?

    例如,假设我有两个域: manufacturer.com productname.com

    产品名称.com 停在 制造商网站 .

    我想创建一条这样的路线:

    Router::connect('http://www.productname.com/', array('controller' => 'products', 'action' => 'view', 'productSlug'));
    

    因此,manufacturer.com的索引基本上是默认的 pages/index 但对于 产品名称.com 应该是的 products/view/productSlug

    2 回复  |  直到 16 年前
        1
  •  4
  •   jpeltoniemi    16 年前

    我只想用我想出的解决办法来回答我自己的问题。

    与其尝试检查路由中的域,更好的方法是在定义路由之前检查主机名。例如:

    if($_SERVER['HTTP_HOST']=='productname.com')
       Router::connect('/', array('controller' => 'products', 'action' => 'view', 'productSlug'));
    else
       Router::connect('/', array('controller' => 'pages', 'action' => 'index'));
    

    有什么意见吗?好还是坏?我还没有测试过,但至少我没有发现任何问题:)

        2
  •  1
  •   Travis Leleu    16 年前

    这是可能的,但我可能不会使用路由来做这件事。主要是因为我对他们不是巫师;)。

    对于您想要的灵活性,我认为您可以将所有请求路由到一个集中式控制器(实际上可能是您的AppController)。然后让该控制器确定调用不同控制器和操作的逻辑。