为什么网站URL对应的处理文件是完全不同目录里文件?

admin 提交于 周三, 11/04/2015 - 22:10

这个东西有个相关的名词叫“路由”。这里是ThinkPHP的相关文档

这是怎样实现的呢?

一个PHP后台开发框架,一般都有一个统一的入口文件:index.php,这个文件会引用很多其它模块文件,加载很多配置和功能。路由是框架的一个基本组成部分,通过路由,框架会把一个URL映射到对应的Controller(如果这个框架是MVC架构的话)。这个Controller和一个独立的PHP文件是不同的,它不能独立运行,它依赖于框架事先运行了一大堆代码。Web服务器(Apache、Nginx等)可以做一定的配置自动识别出URL中哪里省略了index.php,而剩下的部分则是index.php的参数,index.php根据参数调用对应的Controller代码处理。

把index.php作为整个网站所有页面的入口有什么好处呢?

  1. 如果网站要维护,我们可以轻易地打个“网站维护中”的公告。
  2. 如果我们想添加一个记录所有访问量的日志功能,唯一入口也是很方便的实现。
  3. 如此类推,唯一的入口文件可以统一处理很多事情。

标签

添加新评论

Restricted HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id> <img src>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。
验证码
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
请输入"汉语"