遇到一个神秘的问题让我很恼火。我的开发环境是使用以下目录结构创建的。
document_root
└ project
├ application
│├ controllers
││└ admin
││ ├ Users.php
││ ├ Facility_Categories.php
││ └ Facilities.php
│└ views
│ └ admin
│ ├ users
│ │└ index.twig
│ ├ facility_categories
│ │└ index.twig
│ └ facilities
│ └ index.twig
└ public
└ index.php
在开发环境中,这些URL如预期的那样出现。
https://www.example.com/project/admin/users/
-> load admin/Users.php index function
https://www.example.com/project/admin/facilities/
-> load admin/Facilities.php index function
https://www.example.com/project/admin/facility_categories/
-> load admin/Facility_Categories.php index function
最近,当我将这些文件上传到测试环境时。包含“下划线”的URL不能正确显示。看起来控制器没有加载。
https://www.example.com/project/admin/users/
-> load admin/Users.php index function
https://www.example.com/project/admin/facilities/
-> load admin/Facilities.php index function
https://www.example.com/project/admin/facility_categories/
-> 404 Page Not Found (display codeigniter show_404 function)
顺便说一下,如果URL是大写的,控制器将加载,但View不会。(如果视图的目录名称为大写,则还会显示视图。)
https://www.example.com/project/admin/Facility_Categories/
-> 500 Internal Server Error
(Twig\Error\LoaderError : Unable to find template "admin/Facility_Categories/index.twig")
我想用小写的URL访问。我该如何解决这个问题?
发布于 2019-06-10 14:27:26
我自己解决了这个问题,阅读下面的url。
CodeIgniter Controller Case-Sensitive
CodeIgniter3似乎只需要大写控制器名称的第一个字母,然后全部小写。(OK:Facility_categories.php
NG:Facility_Categories.php
)
我刚改了两个点。
从Facility_categories.php
class Facility_categories
的
Facility_Categories.php
更改为class Facility_Categories
控制器类名称现在我可以访问包含小写和下划线的url。
https://www.example.com/project/admin/facility_categories/
https://stackoverflow.com/questions/56520318
复制相似问题