ThinkPHP实战
上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环境的一致体验。