我正在尝试将 Slim PHP 框架与 IIS7 一起使用。现在在某些路线上,我不断从 IIS 获得 404,我觉得这真的很令人困惑。这是我的索引 php:
require 'slim/slim.php';
\Slim\Slim::registerAutoloader();
$app = new \Slim\Slim();
$app->notFound(function () use ($app) {
echo("not found!");
});
$app->get("/books/:id", function($id){
echo("hello book " . $id . "!");
});
$app->get("/test",function(){
echo("testing");
});
$app->run();
在 IIS(运行 PHP 5.3)上,我设置了 url 重写以将所有请求发送到我的 index.php 文件并禁用目录浏览。这似乎工作正常,因为转到 localhost/books/123 会产生“hello book 123!”。但是当我去 localhost/test 时,我只是从 IIS 收到 404 错误!如果向该 url 添加一个斜杠,我的 slim notFound 处理程序将被触发,而不是我的路由处理程序。
如果我创建一个名为“test”的目录,它会停止 404 响应,但会触发 slim notFound 处理程序,而不是我期望的定义的路由处理程序。这看起来很奇怪,因为我禁用了目录浏览。
我知道我的瘦 notFound 处理程序工作正常,因为尝试 localhost/abc/xyz 会触发处理程序并按预期工作。
任何人都可以解释发生了什么以及为什么?我是否忽略了一些配置?
谢谢。