ZFには本当に奇妙な問題があります(少なくともZF初心者の場合):既存のコントローラーとそのアクションメソッドにアクセスできません。
問題はありません:localhost /
localhost / index
localhost / index / index
localhost / index / about
しかし、私は次のようにルートを設定しました:/ localhost / test、インデックスコントローラーとindexActionを指し、アクセスするたびに404が表示されます。
404はzfによるハンドラーではありません(少なくともこのように見えます)。apacheとphpのバージョンが含まれている古いapache2notfoundページが表示されます。このようなリクエストのエラーログには、「ファイルが存在しません:/ var / www/test」と表示されます。
ブートストラップルートの初期化:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {protected function _initDoctype(){
$this->bootstrap('view');
$view = $this->getResource('view');
$view->doctype('XHTML1_STRICT');
}
protected function _initRoute() {
$ctrl = Zend_Controller_Front::getInstance();
//$ctrl->setParam('useDefaultControllerAlways', true);
$router = $ctrl->getRouter();
//$router->removeDefaultRoutes();
$router->addRoute(
'test',
new Zend_Controller_Router_Route_Static('test',
array('controller' =>'index', 'action' => 'index',
'module' => 'default')));
}
}
私が知る限り、問題はおそらくapache2にあります。.htacessは、ドキュメントと同様にデフォルトです。はい、これ:
SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
ありがとう