上QQ阅读APP看书,第一时间看更新
4.5 URL大小写
ThinkPHP根据URL中的模块名、控制器名来定位到具体的控制器类文件,根据操作名执行相应的控制器方法。在Windows和Linux下,文件名大小写会影响文件的查找,来看以下的例子:
访问http://localhost/chapter-4/index.php/Home/Index/index,系统会查找Home/Controller/Index Controller.class.php文件。由于Windows下文件名大小写不敏感,所以以下URL都是等效的:
● http://localhost/chapter-4/index.php/home/Index/index
● http://localhost/chapter-4/index.php/Home/index/index
● http://localhost/chapter-4/index.php/Home/Index/Index
如果在Linux环境下面,一旦大小写不一致,就会造成ThinkPHP查找不到对应的文件。假设请求的URL是http://localhost/chapter-4/index.php/home/Index/index,系统会查找home/Controller/IndexController.class.php,但是Home模块的文件夹名称为Home,控制器查找时失败,会出现“Index控制器不存在的错误”。
ThinkPHP提供了一个“URL_CASE_INSENSITIVE”的配置项,将该项配置为“true”即可实现URL不区分大小写,保持Windows和Linux环境的一致体验。