Hello stackoverflow社区,
我的CodeIgniter有点问题。 我在app文件夹中使用了两个应用程序。第一个是前端,第二个是后端。
在我的根目录中,我有两个.php文件。一个指向前端目录的index.php和一个指向后端目录的backend.php。
由于我使用mod重写以获得干净的URL,因此存在问题。 URL结构如下:www.domain.com/controller/action
这就是我的前端应用程序中控制器的动作。
我使用htacces来摆脱域和控制器之间的/index.php/。 要访问我的后端应用程序,我希望我的URL像这样www.domain.com/admin/controller/action
因此我有这个重写规则:
RewriteCond %{REQUEST_URI} ^admin.*
RewriteRule ^admin/(.*)$ /backend.php?/$1 [L]
现在问题: CodeIgniter假定/ backend /是第一个URI段,并希望将其错误地视为我的控制器。
我是否真的必须编辑CodeIgniter的核心,以告诉它不要使用服务器请求URI或是否还有其他技巧?
提前致谢, 托马斯
答案 0 :(得分:1)
这真的不行。查看config / config.php和config / settings.php等需要设置的常量......你真的需要在一个单独的'application'目录中运行每个应用程序。如果他们甚至需要成为“独立”的应用程序,也值得问问自己......
基本上,当你仍然可以停止沿着这条路走下去时,它会导致心碎,以及大量可怕的代码。
答案 1 :(得分:0)
我建议您在控制器中设置一个名为“admin”的文件夹,而不是拥有两个应用程序文件夹,您还可以在models
,views
(甚至libraries
)内找到文件夹'admin'然后你可以退出这个项目并转移到其他项目。
这样您就可以使用标准rewrite
从网址中删除index.php
,domain.com/admin
会指向控制器中的管理员文件夹。
您只需确保在名为“admin.php”的根控制器文件夹中没有控制器,否则您将遇到问题。
有关详细信息,请参阅CI文档中的Organizing Your Controllers into Sub-folders。
另请注意,开箱即用的MVC框架可能并不总是最适合用于创建CMS。通常,MVC框架最适合用于快速创建具有指向特定routes
的相当静态controllers
的Web应用程序。另一方面,CMS倾向于完全控制网站,这导致数据库驱动的路由,除非你有一个经过大量修改的路由系统,否则通常不需要典型的controllers
。