【问题标题】:why there is an index.php file in all frameworks? [closed]为什么所有框架中都有一个 index.php 文件? [关闭]
【发布时间】:2014-04-22 06:17:44
【问题描述】:

当我使用 codeigniter 时,url 中有一个“index.php”,我必须使用 htaccess 重写规则将其删除(对于初学者和不了解 htaccess 或其重写规则的人来说,这很难第一次删除它以使 url 漂亮)

我认为这是一个代码点火器的麻烦,并决定忽略它。

现在我打算开始一个 laravel 项目,同样的 index.php 也来到了这里。现在我知道如何处理它了

我现在可以理解它是一个通用的框架特性,但我不明白的是它在框架中的作用?

谷歌搜索,但找不到答案。请给我建议,提前谢谢你

【问题讨论】:

  • 请阅读有关网络服务器(apache、IIS ets)工作的信息。
  • 基本上用于通过index.php访问所有系统、库和其他文件夹

标签: php .htaccess codeigniter redirect laravel


【解决方案1】:

如果浏览器请求未发送文件名,Apache 和 IIS 会搜索一组文件。因此,如果 URL 以斜杠结尾,服务器实际上会尝试传递(默认情况下)index.htm、index.html 或 index.php,无论他先找到哪个。这就像一个预定义的重写规则,虽然简单得多。

【讨论】:

    【解决方案2】:

    大多数框架依赖 index.php 来启动引导程序/成为所有请求的代码的通用“入口”。 .htaccess 文件设置为将所有未知路径 (404) 发送到 index.php,因此对文件系统上不存在的“漂亮”url 的请求实际上由 index.php 接收。然后,框架查看原始请求的路径,并将其与已知路由列表进行比较,以确定要做什么。

    一般来说,您不需要接触 index.php 或 .htaccess 文件。我会查看您选择的框架的文档以了解如何添加路由和控制器。

    【讨论】:

    • 但它们不是未知路径。每个页面 url 中都有 index.php,在 htaccess 中我们也指定它应该通过 index.php,即使它没有给出。对吗??
    • 应该只有一个 index.php 位于应用程序的根目录,所有其他页面 url 都是文件系统上不存在的“虚拟”路径。下面是codeignitor的具体信息ellislab.com/codeigniter/user-guide/general/urls.html
    • 好的。感谢您的支持。让我对此进行一些研究..
    【解决方案3】:

    index.php , index.html, index.* 是大多数 Web 服务器的默认文档。因此,您在根文件夹中创建了一个index.php,然后在 url 中您不想指定文档名称示例 http://www.example.com 这是我默认情况下没有指定文档名称 Web 服务器尝试查找 index 文件(如果是) php 那么它将是index.php。尽管您可以使用/etc/apache2/apache2.conf 这个文件在apache2 中更改此默认设置。 (我不使用 IIS,所以我不知道怎么做,但也有可能)

    所有框架都使用这个 index.php 来加载所有类并根据 url 请求进行路由。特别是在 Code-igniter 中,index.php 使用 .htacess 文件将请求的 url 接收到 index.php 。例如 http://www.example.com/doc/1 ,这里这个 /doc/1 部分将发送到 index.php 文件,然后这个文件将决定加载哪个文件(控制器)。从头开始阅读MVC tutorials 将帮助您理解这一点。

    【讨论】:

    • 所以 /doc/1 部分将由 index.php 文件加载??
    • index.php 文件将加载其他类,如CI_Router,如果您查看index.phpsystem 文件夹中的文件,您会知道。 Code-igniter 论坛是另一个很好的参考。但你只想要开发者一个应用程序。不需要花时间在这上面。
    猜你喜欢
    • 2013-10-11
    • 2010-09-05
    • 2015-01-11
    • 1970-01-01
    • 1970-01-01
    • 2011-01-18
    • 2021-10-22
    • 2016-08-05
    • 1970-01-01
    相关资源
    最近更新 更多