子域中的多个CI应用程序

时间:2012-04-25 07:46:26

标签: apache codeigniter mod-rewrite

我是Apache环境的新手。我最好不要.htaccess文件,但我想我没有选择。我的应用程序在我的笔记本中运行没有问题,这是使用WAMPSERVER的Windows环境。但是当我部署到使用Apache的托管服务器时,我遇到了一些问题。我不确定CodeIgniter应用程序的以下结构是否正确。以下是托管服务器中的目录结构...

httodocs/
/survey
    /admin
          /config           <-- $route['default_controller'] = "admin";
          /controllers
          /models
          /views
          /...
    /statistic
          /config           <-- $route['default_controller'] = "statistic";
          /controllers
          /models
          /views
          /...
    /mySurvey
          /config           <-- $route['default_controller'] = "mySurvey";
          /controllers
          /models
          /views
          /...
    /css
    /images
    /scripts
    /system
    /...
/index.php                  <-- $application_folder = 'mySurvey'; 
/admin.php                  <-- $application_folder = 'admin';
/Statistic.php              <-- $application_folder = 'statistic';

我所做的只是复制Application文件夹并分别重命名为admin,statistic和mySurvey,我设置了如上所述的默认控制器。

所有应用程序base_url() = 'http://survey.myhost.com',它是myhost.com下的子域

root index.php实际上是CI应用程序环境,当用户输入“http://survey.myhost.com”时,默认情况下允许用户访问mySurvey应用程序。

从第一页开始,当我访问http://survey.myhost.com/index.php/mySurvey/index/0时 我收到了错误:

`The specified CGI application misbehaved by not retruning a complete set of HTTP headers.`

当我访问http://survey.myhost.com/admin.php/admin/loginhttp://survey.myhost.com/statistic.php?statistic/chart/1时,会显示相同的消息(请注意我也为我的应用程序使用查询字符串)

显然,这些与路线有关。我在服务器上没有任何.htaccess文件,因为WAMP不需要它,感谢是否有人可以建议我在哪里放置.htaccess文件以及上面结构的正确mod重写是什么,这个结构是否合适。 / p>

此致

KK Gian

1 个答案:

答案 0 :(得分:0)

root
  /subs
    /survey (survey.domain.tld)
      /application (CI application folder)  
        /config
        /models
        ...
      index.php (CI index.php file)
    /statistics
      /application (CI application folder)
        /config
        /models
        ...
      index.php (CI index.php file)
    /mySurvey
      /application (CI application folder) 
        /config
        /models
        ...
      index.php (CI index.php file)

  /system (CI system folder)

在每个index.php(subs / survey / index.php,subs / mysurvey / idnex.php,subs / statistics / index.php)中,您将链接到root/system/文件夹

$system_path = '../../system';

现在您可以轻松访问survey.myhost.com,statistics.myhost.com等。从url($config['index_page'] = '';)中删除index.php,admin.php字符串

希望我得到你想要的东西

  

抱歉我的英文