无脂肪框架和PHP -S:一些网站莫名其妙地无法正常工作

时间:2015-08-21 09:50:10

标签: php fat-free-framework

我正在尝试在php -S下运行一个F3 php应用程序,php的内置Web服务器(用于本地测试)。

我有以下路线:

GET /rest/1.0/team=TeamRestController->index
GET /rest/1.0/team/@id=TeamRestController->index

使用404访问这些失败。

当我添加这些路线时:

GET /rest/10/team=TeamRestController->index
GET /rest/10/team/@id=TeamRestController->index

访问他们的工作。看起来像点在这里防止了什么。 1.0表单在apache下工作。

这里发生了什么?

编辑:呃,这个:

while (q > request->vpath) {
    if (*q-- == '.') {
        is_static_file = 1;
        break;
    }
}

即。如果URL路径中的任何地方都有一个点,那么php将只提供静态内容,而不是执行脚本。他们在想什么?

1 个答案:

答案 0 :(得分:1)

看起来像是内置服务器中的错误:当调用/rest/1.0/team时,即使被调用的脚本是$_SERVER['SCRIPT_NAME'],PHP也会将/rest/1.0设置为index.php ... < / p>

意图可能是支持这样的呼叫:/rest/index.php/team但在我们的情况下,这是无关紧要的,因为:

  • 脚本名称已作为参数传递给服务器
  • 没有名为1.0
  • 的脚本

您可以通过在$_SERVER['SCRIPT_NAME']顶部设置正确的index.php来解决此错误:

<?php
$_SERVER['SCRIPT_NAME']=basename(__FILE__);
$f3=require('lib/base.php');
//etc...
相关问题