IIS7でSlimPHPフレームワークを使用しようとしています。現在、一部のルートでは、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を実行)では、すべての要求をindex.phpファイルに送信するようにURLを書き換えて設定し、ディレクトリの参照を無効にしました。localhost / books / 123に移動すると「hellobook123!」が生成されるため、これは正常に機能しているようです。しかし、localhost / testに移動すると、IISから404エラーが発生します。そのURLに末尾のスラッシュを追加すると、ルートハンドラーの代わりにスリムなnotFoundハンドラーがトリガーされます。
「test」というディレクトリを作成すると、404応答は停止しますが、予想どおり、定義されたルートハンドラではなく、スリムなnotFoundハンドラがトリガーされます。ディレクトリブラウジングを無効にしたので、これは本当に奇妙に思えます。
localhost / abc / xyzを試行するとハンドラーがトリガーされ、期待どおりに機能するため、スリムなnotFoundハンドラーは正常に機能していることがわかります。
誰かが何が起こっているのか、そしてその理由を説明できますか?いくつかの構成を見落としましたか?
ありがとう。