1

私は ZF を初めて使用し、既に構築されたアプリケーションに取り組んでいます。私の仕事は、アプリケーションで Web サービスを作成することです。アプリケーションをローカルでセットアップしましたが、正常に動作しています。そこで新たにコントローラーを追加してローカルホストではアクセスできたのですが、サーバーで同じものにアクセスしようとすると404エラーになりますが、他のコントローラーは問題なくアクセスできます。

AllowOverride All および Apache mod_rewrite がサーバーで有効になっています。誰でもこの問題について何か考えがありますか。私はこのエラーで2日間座っています..

    <VirtualHost *:80>
          DocumentRoot /path/to/site/public
          ServerName sitename.com
          ServerAlias www.sitename.com
       <Directory /path/to/site/public>
          AllowOverride All
       </Directory>
    </VirtualHost>

コントローラーコード:

class APIController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */

    }

    public function indexAction()
    {

        // Setup REST server
        $server = new Zend_Rest_Server();
    $server->setClass('APIHandlerClass');
    $server->handle();
    exit;
    }


}  

URL site.com/APIでアクセスしています。実際には XML が表示されます。

編集

ローカル Linux システムでアプリケーションをセットアップしましたが、問題は Linux に関連していることがわかりました。

私は次のことを試しました:

  1. 404 になる新しいコントローラーを作成しました。

  2. 既存のコントローラーをコピーし、元のコントローラーの名前を変更しました。次に、コピーしたコントローラーのコードを変更しました。コントローラーにアクセスしたところ、うまくいきました!

  3. 既存のコントローラーをコピーし、コピーしたコントローラーの名前を変更しました。コピーしたコントローラーを新しい名前で呼び出したところ、404 エラーが表示されました。

私の質問は、どこでも新しいコントローラー名を指定する必要があるのですか!? これに関するドキュメントは見つかりませんでした。コントローラー用のビュー ファイルも作成しました。

4

1 に答える 1

4

アプリケーションが Windows ではローカルで動作するが、Linux を実行しているテスト サーバーでは動作しない場合は、大文字と小文字の区別の問題である可能性があります。controllers フォルダーと views/scripts フォルダーを含むフォルダーの大文字と小文字を確認します (両方とも小文字にする必要があります)。

于 2013-02-15T09:07:30.463 に答える