【问题标题】:Routing depending on the subdomain路由取决于子域
【发布时间】:2010-01-14 11:35:08
【问题描述】:

请帮助我。我对kohana很陌生。如何最好地做到这一点控制器是根据子域选择的。例如:

www.site.com -> 控制器:siteroot。方法:运行 admin.site.com -> 控制器:adminsite。方法:运行 moderator.site.com -> 控制者:moderatorsite。方法:运行 director.site.com -> 控制器:directorsite。方法:运行 默认值:主管:合作伙伴网站。方法:运行

run 方法对这些子域执行操作,并将从监督者模块中获取一个页面。

我使用的是 kohana v3.0

【问题讨论】:

    标签: php routing subdomain kohana


    【解决方案1】:

    我认为 Kohana 没有提供任何直接处理此问题的方法,但您始终可以在 bootstrap.php 文件中添加一些自定义代码,根据当前子域设置不同的路由:

    switch ($_SERVER['SERVER_NAME'])
    {
        case 'site.com':
            // Default routes.
            $controller = 'siteroot';
            break;
        case 'admin.site.com':
            // Admin routes.
            $controller = 'adminsite';
            break;
        // Etc.
    }
    
    Route::set('default', '(<controller>(/<action>(/<id>)))')
         ->defaults(array(
                    'controller' => $controller,
                    'action' => 'run')); 
    

    您真的需要为每种情况使用单独的域吗?使用 site.com/admin、site.com/moderator 等可能更明智。

    【讨论】:

    • 非常感谢!!!怎么做才是对的。我没有一个,没有两个子域。很多,每个合作伙伴都有自己的子域。合作伙伴不断变化,他们拥有的网站也一样,只有极少数例外。
    【解决方案2】:

    我认为它不会开箱即用,MatW。 如果它是 app_path 的子目录,则为 true,但如果不是,则永远不会路由到该文件夹​​的 index.php。 可以通过 apache 的 htaccess 或 httpd.ini 来完成。

    【讨论】:

      【解决方案3】:

      由于该子域无论如何都会映射到一个目录,因此根本不需要添加任何自定义代码,这正是 Kohana 3 中 Routes 的用途。

      子域:admin.site.com

      映射到目录:~/public_html/admin/

      控制器:Controller_Adminsite

      控制器目录:~/application/classes/controller/adminsite.php

      bootstrap.php 的路由:

      Route::set('admin', 'admin(/<action>(/<id>))')
              ->defaults(array(
                      'controller' => 'adminsite',
                      'action'     => 'run',
              ));
      

      【讨论】:

        【解决方案4】:

        看起来有人实际上已经创建了一个子模块来进行子域路由:

        https://github.com/jeanmask/subdomain

        【讨论】:

          猜你喜欢
          • 2016-07-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-18
          • 1970-01-01
          • 2016-03-28
          • 1970-01-01
          • 2019-12-23
          相关资源
          最近更新 更多