0

Restler php apiを使用しようとしています。

Web サーバーのルートに api.php ファイルがあります。

<?php
require_once('lib/restler.php');

class Say {
    function hello($to='world') {
        return "Hello $to!";
    }
}

$r = new Restler();
$r->addAPIClass('Say');
$r->handle();
?>

最も単純な例で GET api.php/say/hello を試してみましたが、nginx はエラー 404 で応答し続けます。ログに「ディレクトリではありません」と表示されます。

私のnginx confに問題があると思いますが、それに関する特定の情報が見つかりません。何か案が?

4

3 に答える 3

5

私の問題を解決するには:

コードを /api/index.php に入れました

次に、nginx 構成を変更して追加します。

location /api {
        if (!-f $request_filename) {
            rewrite ^(.*)$ /api/index.php last;
        }

        if (!-d $request_filename) {
            rewrite ^(.*)$ /api/index.php last;
        }
    }

したがって、GET /api/say/hello を呼び出すと、/api/index.php/say/hello にリダイレクトされ、書き換えルールにより、restler はその魔法を実行できます。

これが、nginx で restler を使用する将来のユーザーに役立つことを願っています。

于 2012-04-14T12:45:04.753 に答える
1

rewriteモジュールapi.php/say/helloを調べて、nginx がURLを受け入れるようにする方法を確認してください。

于 2012-04-11T08:43:43.810 に答える