为什么在CodeIgniter Call中的URI中有index.php

时间:2016-02-03 01:13:24

标签: php html html5 codeigniter

CodeIgniter给出了这个示例Blog.php

<?php
class Blog extends CI_Controller {

        public function index()
        {
                echo 'Hello World!';
        }
}

并通过

调用它

example.com/index.php/blog /

问题是为什么在uri中有index.php?

3 个答案:

答案 0 :(得分:1)

服务器(典型灯泡堆栈中的apache)必须解析为可执行的php文件。没有重写,唯一的方法是直接引用.php文件(或目录索引文件索引,如index.htmlindex.php等)。默认情况下,路径example.com/blog/会尝试加载子目录/blog。要删除index.php,您需要为服务器启用url重写。 CodeIgnitor has this well documented

答案 1 :(得分:0)

你想知道为什么URl中有index.php? 有一个简单的答案,Codeigniter下的任何请求都被赋予index.php,然后它解析控制器。因此,人们通常会使用mod_rewrite来掩盖index.php。 php解释器本身没有控制器的概念,它只将URI映射到文件并为其提供post和get参数。 因此,您需要一个在控制器调用中转换URI的文件。

答案 2 :(得分:0)

如果你深入了解index.php,你就会知道Code Igniter需要:
- 检查系统路径
- 负载常数
- 应用程序是否能够写入文件?如果您将文件上传到服务器,通常会使用此选项 - 加载核心功能
- 等等

简单地说,代码点火器将加载您可能在应用程序中使用的变量,函数,帮助器,库等