codeigniter - 如何在 Codeigniter 3 的 URL 中使用下划线和小写字母?
问题描述
我对遇到神秘问题感到恼火。我的开发环境是使用以下目录结构创建的。
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 访问。我该如何解决这个问题?
解决方案
我自己解决了这个问题,阅读以下网址
CodeIgniter3 似乎只需要大写控制器名称的第一个字母,然后全部小写。(好的:Facility_categories.php
NG Facility_Categories.php
:)
我只是改变了2点。
- 将控制器文件名从更改
Facility_Categories.php
为Facility_categories.php
- 将控制器类名称从更改
class Facility_Categories
为class Facility_categories
现在我可以访问包含小写和下划线的 url
https://www.example.com/project/admin/facility_categories/
推荐阅读
- javascript - 如何在浏览器扩展上下文中通过 TypeScript 访问全局变量(如果可能,部分输入)
- r - 根据包含表中未找到的值的优先级顺序的向量对数据框行进行排序
- python - Selenium:元素无法滚动到视图中
- ruby - 将圆角矩形插入 Prawn 表格单元格红宝石
- java - 如何按行来回填充二维数组
- azure-devops - 如何在 Azure Pipelines yaml 中显示宏 ($(var)) 的值?
- vue.js - 为什么我的网站在 vuejs axios 中检索后返回 2 个空格
- python - 如何搜索 OpenStack 用户不区分大小写?
- python-3.x - 使用 python requests 库时,是否有某种方法可以加快请求和/或 timrout 错误?
- go - 在 go 中创建 grpc 服务器流端点时客户端流协议冲突