如何在Slim框架中路由以index.php结尾的路径

时间:2015-05-27 01:11:13

标签: slim

我使用的是Slim Framework 2.4.2,我的.htaccess看起来像这样

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

我在路由以index.php结尾的路径时遇到了一些麻烦。出于遗留支持的原因,我需要能够将/soap/index.php路由到我的自定义代码,但它会继续运行到我的notFound处理程序。

我的/index.php

中有以下路线
$app->get('/soap/index.php', function () {
    echo "HERE";
});

但是,当我在浏览器中转到/soap/index.php时,会得到Slim的404 Not Found处理程序。我尝试将路线改为/soap/index2.php,这让我可以看到" HERE"在浏览器中,但是当我使用/soap2/index.php时,我得到与原始相同的结果。 /soap/目录仍然存在,但/soap2/没有,因此它似乎不是Apache导致问题,因为两者都返回相同的结果,即Slim 404处理程序。看起来Slim为任何进入index.php的路线提供了404。

我还尝试创建一个/soap/路线,看看当我在浏览器中访问/soap/index.php时Slim是否尝试使用它,但这仍然给了我一个404。

现在,我将尝试让404处理程序检测问题并执行操作。

1 个答案:

答案 0 :(得分:0)

notFound处理程序中,我得到" /x.php"来自$app->request->getPathInfo()的回复。当我在前面添加更多字母时,它们最终会出现在字符串中。它会剪切前9个字符,即文件名的长度。经过一番观察,这是一个已知的错误。

据GitHub here报道。

更新到最新的Slim框架解决了这个问题。