如何在子域中设置第二个Codeigniter应用

时间:2019-05-18 11:36:21

标签: codeigniter subdomain hosting cpanel shared

我有一个Web应用程序的前端和后端,前端是在codeigniter框架中创建的,后端也是在另一个codeigniter框架中进行的。

frontend:flum.com
后端:subdomain.flum.com

前端工作正常,但是我在后端遇到麻烦,它始终显示错误404。

在我的共享托管文件管理器中,

前端-Codeigniter应用1

/root/username/application    
/root/username/system    
/root/username/public_html/index.php    
/root/username/public_html/public/(css, js, images folders)

后端-Codeigniter应用2

/root/username/subdomain_application
/root/username/subdomain_system
/root/username/public_html/subdomain/index.php
/root/username/public_html/subdomain/public/(css, js, images folders)
两者都有相同的数据库设置 application / config / database.php

$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'localhost',
    'username' => 'user',
    'password' => 'pass',
    'database' => 'mydatabase',
    'dbdriver' => 'mysqli',...
);

前端应用程序/config/config.php

$config['base_url'] = 'http://flum.com';
$config['index_page'] = '';

-我在主要ci应用程序上编辑了index.php

$system_path = '/root/username/application';
$application_folder = '/root/username/system';

后端application / config / config.php

$config['base_url'] = 'http://subdomain.flum.com';
$config['index_page'] = '';

-我在主要ci应用程序上编辑了index.php

$system_path = '/root/username/subdomain_application';
$application_folder = '/root/username/subdomain_system';

两者都具有相同的.htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

我希望后端可以在完全独立的codeigniter应用程序中运行,因此后端可以与我的前端应用程序正常工作。

1 个答案:

答案 0 :(得分:0)

这是您可以尝试的另一种文件结构。希望它将带来更好的结果。

/root/username/front/application/
/root/username/front/public_html/index.php
/root/username/front/public_html/.htaccess
/root/username/front/public_html/assets/(css, js, images folders)

/root/username/back/application/
/root/username/back/public_html/index.php
/root/username/back/public_html/.htaccess
/root/username/back/public_html/assets/(css, js, images folders)

正面和背面都可以使用相同的系统目录

/root/username/system/

正面和背面都需要自己的index.php。每个系统路径都相同。

/front/public_html/index.php

$system_path = '/root/username/system';
$application_folder = '/root/username/front/application';

/back/public_html/index.php

$system_path = '/root/username/system';
$application_folder = '/root/username/back/application';

两个“ public_html”目录都需要一个.htaccess,但它们与您在问题中显示的目录相同。

您在适当的config.php文件中使用的$config['base_url']值会很好。

因为您使用.htaccess,所以我假设您正在使用Apache。 Apache站点conf文件中用于正面和背面的块都需要将DocumentRoot值设置为相应的public_html目录路径。

问题中显示的数据库配置应同时适用于正面和背面。

CodeIgniter文档对Running Multiple Applications提出了另一条建议,该建议与我显示的结构类似。它使用两个index.php文件,但其中至少一个必须具有不同的名称。在您的情况下,也许前面使用index.php,后面使用backend.php

要浏览到名为“ admin”的后端控制器,URL将为https://subdomain.flum.com/backend.php/admin

要从URL中删除index.php或backend.php,将需要更复杂的.htaccess。老实说,我不确定这是什么样子,是文件结构出现的原因。