奇怪的URI形式

时间:2014-07-20 18:43:19

标签: php

我最近一直在学习php,我发现这个奇怪的陈述,我试图弄清楚,但不太了解它。 这是我找到的URI

    <?php 
        $datei = file("http://www.abc.de/cms/index.php/pps.html");
        foreach($datei AS $stellenangebote)
        {
           echo $stellenangebote;
        }
    ?>

现在我想要了解的问题是它如何到达.html页面,而它之前有.php? 如果这是一种技术,那它的名字是什么?为什么我会使用这种风格?

2 个答案:

答案 0 :(得分:0)

这是一个名为PathInfo的Apache事物。如果您设置了AcceptPathInfo,它会被激活,默认情况下通常是这样。然后,您可以通过$_SERVER['PATH_INFO']访问文件名后的部分。

What exactly is PATH_INFO in PHP?

的答案中提供了更多信息

答案 1 :(得分:0)

此技术用于创建应用程序的单个入口点。 这允许您控制应用程序的流程 - 所有请求都由index.php处理,因此您有一个地方可以加载类,初始化对象等。

大多数现代基于php的网站都将使用这种技术(它是绝大多数现代Web框架中使用的MVC范例的核心),尽管许多人使用Apache mod_rewrite或其他类似的方法隐藏了你的实际index.php文件。网络服务器。

正如fiskfisk所提到的,这可以通过访问请求路径来实现。用于从授权用户的非Web可访问位置加载文件的简单示例:

<?php
$path = $_SERVER['PATH_INFO'];
//if user is authorized, include file from OUTSIDE of webroot
if(isset($_SESSION['auth']) && ($_SESSION['auth'] > 3)){
    include '../' . $path;
}else{
    die('you are not authorized to see this file');
}

至于这种技术的官方名称,我不确定,但google&#34; php单一入口点&#34;或&#34; php路由索引&#34;应该有所帮助。