Php 具有多个应用程序的CodeIgniter URI路由(htaccess)
大家好,我的社区 我的代码点火器有点问题。 我在我的应用程序文件夹中使用了两个应用程序。第一个是前端,第二个是后端 在我的根目录中有两个.php文件。一个index.php指向前端目录,一个backend.php指向后端目录 因为我使用mod rewrite来获得干净的URL,所以有一个问题。 URL结构如下:www.domain.com/controller/action 这是我的前端应用程序中控制器的操作 我使用htacces来摆脱域和控制器之间的/index.php/。 要访问我的后端应用程序,我希望我的URL如下:www.domain.com/admin/controller/action 因此,我有一个重写规则:Php 具有多个应用程序的CodeIgniter URI路由(htaccess),php,.htaccess,codeigniter,url-routing,codeigniter-url,Php,.htaccess,Codeigniter,Url Routing,Codeigniter Url,大家好,我的社区 我的代码点火器有点问题。 我在我的应用程序文件夹中使用了两个应用程序。第一个是前端,第二个是后端 在我的根目录中有两个.php文件。一个index.php指向前端目录,一个backend.php指向后端目录 因为我使用mod rewrite来获得干净的URL,所以有一个问题。 URL结构如下:www.domain.com/controller/action 这是我的前端应用程序中控制器的操作 我使用htacces来摆脱域和控制器之间的/index.php/。 要访问我的后端应用
RewriteCond %{REQUEST_URI} ^admin.*
RewriteRule ^admin/(.*)$ /backend.php?/$1 [L]
现在的问题是:
CodeIgniter假定/backend/是第一个URI段,并希望将其错误地视为我的控制器
我真的必须编辑CodeIgniter的核心,以便告诉它不要使用服务器请求URI,还是有其他技巧
提前感谢,,
托马斯这真的不行。查看config/config.php和config/settings.php等需要设置的常量。。。您确实需要在单独的“应用程序”目录中运行每个应用程序。同样值得问问自己,它们是否需要成为“独立”的应用程序
基本上,在你还可以的时候,停止走这条路,它会导致心碎,以及大量可怕的代码。这真的行不通。查看config/config.php和config/settings.php等需要设置的常量。。。您确实需要在单独的“应用程序”目录中运行每个应用程序。同样值得问问自己,它们是否需要成为“独立”的应用程序
基本上,当你还可以的时候,停止走这条路,这将导致心碎,以及大量可怕的代码。我建议在控制器中设置一个名为“admin”的文件夹,而不是两个应用程序文件夹,你也可以在你的
模型
,视图
(甚至库
)名为“admin”,您可以将其从该项目中取出并转移到其他项目
这将允许您仅使用标准从URL中删除index.php
,并且domain.com/admin
将指向控制器中的管理员文件夹
您只需确保根控制器文件夹中没有名为“admin.php”的控制器,否则会遇到问题
有关更多信息,请查看:在CI文档中
还请注意,开箱即用的MVC框架可能并不总是用于创建CMS的最佳方法。通常,MVC框架最适合用于快速创建具有相当静态的
路由
指向特定控制器
的web应用程序。另一方面,CMS倾向于完全控制网站,这导致数据库驱动的路由,通常不需要典型的控制器,除非您有一个经过大量修改的路由系统。我建议在控制器中有一个名为“admin”的文件夹,而不是有两个应用程序文件夹,您还可以在您的模型
,视图
(甚至是库
)中设置名为“admin”的文件夹,然后您可以将其从该项目中拉出并移动到其他项目中
这将允许您仅使用标准从URL中删除index.php
,并且domain.com/admin
将指向控制器中的管理员文件夹
您只需确保根控制器文件夹中没有名为“admin.php”的控制器,否则会遇到问题
有关更多信息,请查看:在CI文档中
还请注意,开箱即用的MVC框架可能并不总是用于创建CMS的最佳方法。通常,MVC框架最适合用于快速创建具有相当静态的路由
指向特定控制器
的web应用程序。另一方面,CMS倾向于完全控制网站,这导致了数据库驱动的路由,通常不需要典型的控制器
,除非您有一个经过大量修改的路由系统。感谢答案=)我的意图是将前端和后端分开,以便能够将我的后端重新用于其他项目。您有什么建议?使用CI可爱的新“包”功能,它允许您重用某些代码位,或者为CI构建另一个“应用程序”,作为REST API。CI在软件包上的文档很难找到,但PS自己在这里描述了它们的功能:。在这两个选项中(可能还有更多),我会选择API:)谢谢你的答案=)我的意图是将前端和后端分开,以便能够将我的后端重新用于其他项目。您有什么建议?使用CI可爱的新“包”功能,它允许您重用某些代码位,或者为CI构建另一个“应用程序”,作为REST API。CI在软件包上的文档很难找到,但PS自己在这里描述了它们的功能:。在这两个选项中(可能还有更多),我会选择API:)