CodeIgniter后端前端.htaccess路由器

时间:2009-11-08 20:01:42

标签: apache .htaccess codeigniter frontend backend

我正在尝试使用CodeIgniter开发一个基础CMS,供我自己在项目中使用,但却陷入了困境。另外,我对CI很新,但是在ZF和OOP PHP上花了几年时间。

首先让我告诉你我的文件结构:

  • index.php(frontend bootstrap)
  • backend.php(backend bootstrap)
  • 的.htaccess
  • 系统(CI核心)
    • 应用
      • 后端
        • [...] MVC相关文件和文件夹(配置,控制器,模型,视图......)
      • 前端
        • [...] MVC相关文件和文件夹(配置,控制器,模型,视图......)
    • [...](缓存,数据库,脚手架......)

确定。我可以使用.htaccess来处理index.php或backend.php路由,但无法使用它们。这是.htaccess代码:

RewriteEngine on
RewriteBase /

# Hide the application and system directories by redirecting the request to index.php (and throwing a 404 error)
RewriteRule ^(application|system|\.svn) index.php/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [QSA,L]

嗯,我需要的是以下内容:

  • www.domain.com/backend/controller/action/parameters(backend.php routing)
  • www.domain.com/controller/action/parameters(index.php routing)
希望我能解释清楚。

有人可以帮忙吗? :)

最好的问候。

2 个答案:

答案 0 :(得分:1)

经过一番搜索后,我发现very nice article记录了如何做我需要的事情。它还解释了在CI中后端/前端的3种方法:

  • 单独的申请
  • 子目录
  • HMVC(分层模型视图控制器)

HMVC完全符合我的需求,但我会首先尝试子目录。 :)

答案 1 :(得分:0)

基本上你想并排运行两个CodeIgniter应用程序,一个在根中,一个在backend/中。有几种方法可以做到这一点,但最简单的方法是为第二个实例添加重写规则(删除 L ast标志):

RewriteRule ^backend/(.*)$ /backend/index.php/$1 [QSA]
RewriteRule ^(.*)$ index.php/$1 [QSA,L]