0

動作するフロントコントローラーがあります。AuthController.php という名前のログイン コントローラーを作成しました。内部の適切なコードで構成されています。私の問題は、/auth に移動すると 404 が返されることです。これは、ある種のルーティングの問題のようです。

私の認証コントローラーは AuthController.php と呼ばれ、その上部は次のようになります。

class AuthController extends Zend_Controller_Action
{
public function init()
{
    /* Initialize action controller here */
}


public function indexAction()
{
    $form = new Application_Form_Login();
    $request = $this->getRequest();
    if ($request->isPost()) {
        if ($form->isValid($request->getPost())) {
            if ($this->_process($form->getValues())) {
                // We're authenticated! Redirect to the home page
                $this->_helper->redirector('index', 'index');
            }
        }
    }
    $this->view->form = $form;
}

そしてもちろん、他のことを処理する保護された関数が以下にあります。Zend では、新しいコントローラーを作成すると、その存在 (CodeIgniter の場合のように) だけでなく、それを使用できるようにする必要がありますか? または、どこかのルーティング テーブルに追加する必要がありますか?

編集:これが私のApache Vhost構成です:

<VirtualHost *:80>
ServerName      new.mydomain.com
DocumentRoot    /www/htdocs/zend/public
<Directory /www/htdocs/zend/public>
  DirectoryIndex index.php
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>
</VirtualHost>
4

3 に答える 3

1

私自身はzendの初心者です。私の経験では、404エラーが発生しました。

htaccessが設定されていません(コメントでKeyneが言及したように)

また

コントローラ/アクションに関連付けられたビューはありませんでした。まったく作成されていないか、フォルダ/アクション/ビューのファイル名に何らかのタイプミスがありました。

したがって、上記の2つが当てはまらないことを確認してください。

于 2012-09-09T04:01:46.830 に答える
1
  1. mod_rewriteが有効になっていることを確認してください(Apacheの場合)
  2. AuthController.phpファイルがデフォルトのモジュール(IndexController.phpを入れたものと同じもの)にあることを確認してください
  3. httpd.confファイルがApacheでオーバーライドを許可するように設定されていることを確認してください(htaccessが機能するように)-debiansqueezeでdebianボックスを使用している場合はapache.confである可能性があります-他のLinuxタイプについてはわかりませんが。

これがすべて正しければ、問題なく動作するはずです。

于 2012-09-09T13:09:26.733 に答える
1

別のコントローラーまたは testController を作成してから、/test のようにアクセスしてみて、エラーが発生する場合は、問題がある可能性があります。それが機能する場合は、認証コントローラーを変更し、別のクラス名で名前を付けます

于 2012-09-08T23:48:29.243 に答える