我有一个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应用程序中运行,因此后端可以与我的前端应用程序正常工作。
答案 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
。老实说,我不确定这是什么样子,是文件结构出现的原因。