4

私はここで立ち往生しています.wampですべてを実行し、正常に動作しますが、APIをcentosボックスにインストールしようとすると、常に「見つかりません」というエラーが表示されます.

他に何をすべきかわからない!

say/hello の例でさえ失敗します...

restler を処理するための apache 要件の仕様はありますか?

何かアイデアはありますか?, それは一種の緊急です

say.php:

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

index.php

<?php
    require_once 'restler/restler.php';
    require_once 'say.php';

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

    $r->setSupportedFormats('jsonpformat', 'jsonformat', 'xmlformat', 'yamlformat');
    $r->handle();

.htaccess

DirectoryIndex index.php
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^$ index.php [QSA,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
<IfModule mod_php5.c>
    php_flag display_errors On
</IfModule>

エラー:

見つかりません 要求された URL /mylocation/say/hello がこのサーバーで見つかりませんでした。

これが基本的にすべてのコードです。jsonpformat が邪魔をしている可能性があると思われる場合は、そのコードをここに貼り付けることができます。

次のように URL を入力するとhttp://myhost/mylocation/、json エラーが発生します。

{
  "error": {
    "code": 404,
    "message": "Not Found"
  }
}

入力http://myhost/mylocation/say/helloすると、見つからないというエラーが表示されます。.htaccess が機能していないようです。

[編集]

このようにURLに「index.php」を追加するとhttp://myhost/mylocation/index.php/say/helloうまくいくようですが、このままにしておくことはできません...

私はこれを取得しました: index.php が URL に含まれていない場合、Restler は 404 ステータス コードを返します。

4

1 に答える 1

6

わかりました、問題が見つかりました。ご協力いただきありがとうございます。

解決策は、ファイルのAllowOverride変数をではなく に設定することでした。試してみるとすぐにうまくいきました:)httpd.confAllNone

apache のmod_rewrite以外に、restler を実行するための別の要件が見つかりませんでした。必要な場合は、これを編集してここに配置します。

これはrestlerの一般的な問題であることがわかりました。ドキュメントで言及することをお勧めします。これが役に立てば幸いです。

PD : 質問を投稿してから 1 分も経過していないのに、質問を編集しているときに反対票を投じられるのは非常に迷惑だと言わざるを得ませんが、できる限り迅速に対応しました。「なぜ投稿したのですか?」と言うかもしれません。レスラー要件の部分のため、それに答えるのにそれほど詳細は必要ありません...

于 2012-09-08T14:44:13.693 に答える