1

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ハンドラーは正常に機能していることがわかります。

誰かが何が起こっているのか、そしてその理由を説明できますか?いくつかの構成を見落としましたか?

ありがとう。

4

1 に答える 1