当我使用codeigniter时,有一个'index.php'来自url,我不得不使用htaccess重写规则删除它(对于一个初学者和一个不了解htaccess或其重写规则的人 - 很难第一次删除它以使网址漂亮)
我认为这是一个令人讨厌的问题,并决定忽略它。
现在我打算开始一个laravel项目,同样的index.php也来到这里。现在我知道如何处理它了
我现在可以理解它是一个常见的框架功能,但我不明白它在框架中的作用?
用Google搜索但无法找到答案。请提前告知我并提前感谢
答案 0 :(得分:2)
大多数框架都依赖index.php来启动bootstrap /是常见的"入口"进入所有请求的代码。 .htaccess文件被设置为将所有未知路径(404s)发送到index.php,因此请求"漂亮"实际上不存在于文件系统上的URL实际上是由index.php接收的。然后,框架查看原始请求的路径,并将其与已知路由列表进行比较,以确定要执行的操作。
通常,您不需要触摸index.php或.htaccess文件。我会检查你选择的框架的文档,以找到如何添加路由和控制器。
答案 1 :(得分:0)
如果浏览器请求没有发送文件名,Apache和IIS会搜索一组文件。因此,如果Url以斜杠结尾,则服务器实际上会尝试传递(默认情况下)index.htm,index.html或index.php,无论他先找到哪个。这就像预定义的重写规则,虽然简单得多。
答案 2 :(得分:0)
index.php , index.html, index.*
是大多数Web服务器的默认文档。所以你在根文件夹中创建index.php
然后在url中你不想指定文档名称示例http://www.example.com这里我没有指定文档名称默认情况下web服务器试图查找{{1如果它是php,那么它将是index
。虽然您可以使用index.php
此文件在apache2中更改此默认设置。 (我不使用IIS,所以我不知道怎么做,但也有可能)
所有框架都使用此index.php根据url请求加载所有类和路由。特别是在代码点火器中,/etc/apache2/apache2.conf
使用.htacess文件将请求index.php
带到url
。例如http://www.example.com/doc/1,此index.php
部分将发送到/doc/1
文件,然后此文件将决定加载哪个文档(Controller)。从头开始阅读MVC tutorials将帮助您理解这一点。