【问题标题】:How to route a path that ends with index.php in Slim framework如何在 Slim 框架中路由以 index.php 结尾的路径
【发布时间】:2015-05-27 01:11:13
【问题描述】:

我使用的是 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/ 路由,以查看 Slim 在我在浏览器中访问 /soap/index.php 时是否尝试使用该路由,但这仍然给我一个 404。

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

【问题讨论】:

    标签: slim


    【解决方案1】:

    notFound 处理程序中,我收到来自$app->request->getPathInfo() 的响应的“/x.php”。当我在前面添加更多字母时,它们最终会出现在字符串中。它正在剪切前 9 个字符,即文件名的长度。多看几眼后,这是一个已知的错误。

    GitHub上报道here

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

    【讨论】:

      猜你喜欢
      • 2017-10-13
      • 2021-05-31
      • 1970-01-01
      • 1970-01-01
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      • 2018-03-08
      • 2016-06-28
      相关资源
      最近更新 更多