CodeIgniter后端前端.htaccess路由器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CodeIgniter后端前端.htaccess路由器相关的知识,希望对你有一定的参考价值。

我正在尝试使用CodeIgniter开发一个基本的CMS,供我在项目中使用,但是在此方面遇到了问题。 另外,我对CI还是很陌生,但是使用ZF和OOP php已有几年了。

首先,让我向您展示我的文件结构:

  • index.php(前端引导程序)
  • backend.php(后端引导程序)
  • .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路由)
  • www.domain.com/controller/action/parameters(index.php路由)

希望我能解释清楚。

有人可以帮忙吗? :)

最好的祝福。

答案

经过更多搜索后,我发现了一篇非常不错的文章,记录了如何做自己需要的事情。 它还说明了在CI中后端/前端的3种方式:

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

HMVC非常适合我的需求,但我将首先尝试子目录。 :)

另一答案

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

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

以上是关于CodeIgniter后端前端.htaccess路由器的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter、OpenID 和 .htaccess

CodeIgniter 使用 .htaccess 保护管理控制器

如何使用 .htaccess 在 codeigniter 中实现动态子域?

.htaccess 问题、虚拟子域和 Codeigniter

CodeIgniter:是不是可以在不使用 .htaccess 的情况下删除 index.php?

子目录中的 CodeIgniter 站点,htaccess 文件可能会干扰主目录中的 htaccess 文件?