0

要从 Web 服务器访问任何页面,我熟悉两种方式,如下所示

http://127.0.0.1/joomla30/efinanace/currently-no-jobs-available/index.php

http://127.0.0.1/joomla30/efinanace/index.php?value=currently-no-jobs-available

但以下方式对我来说是新的,即 index.php 后跟路径

http://127.0.0.1/joomla30/index.php/efinanace/currently-no-jobs-available

我的问题是 index.php 如何解释上述链接,或者服务器如何确定用户需要哪个页面。. . . 请在对这个问题进行评分之前回答。

4

1 回答 1

0

第一种方式需要一个 .htaccess 文件,它实际上将链接重写为后一种格式。在后一种格式中,系统会调用 index.php 开始加载页面。之后的所有内容都index.php被解析为查询字符串的一部分,在 上拆分/并路由以确定您想要的页面。

实际的路由基本上是从 index.php 之后的 url 左侧开始,并尝试将其与菜单别名匹配。(因此,在您的情况下,它会查找别名为 efinanace 的菜单项。找到它后,它会查找名为 的项目currently-no-jobs-available,以使用您的示例。)

一旦它有一个菜单项(如果不匹配,它只使用默认菜单项)。然后它调用该菜单项的组件并将查询字符串的其余部分传递给该组件的 router.php 文件(应该在组件的基础中找到)。然后,该文件的任务是根据查询字符串确定组件应该做什么。

显然,在这一切中发生了更多事情,但这应该给你一个基本的概述。

于 2013-10-03T19:12:15.140 回答