我是 Zend 框架的新手。
我正在运行 Apache 2.2,并将 httpd.conf 文件中的 DocumentRoot 设置为使用 Zend_Tool 创建的公共目录。
在公共目录中,我有一个 .htaccess 文件;
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
...和一个 index.php 文件;
<?php
// Define path to application directory
/*defined('APPLICATION_PATH')
|| */define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),
)));
/** Zend_Application */
require_once 'Zend/Application.php';
// Create application, bootstrap, and run
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()->run();
当我在浏览器中键入“http://localhost/”时,“application/views/scripts/index/”目录中的文件 index.phtml 呈现正常。
如果我尝试使用 url 中的控制器和操作名称访问其他视图,我会收到 404 错误,指出在服务器上找不到请求的 URL。
例如,我有控制器文件 TestController.php,它与 IndexController.php 位于同一目录中
/TestController.php/ _ _
<?php
class TestController extends Zend_Controller_Action
{
public function init()
{
/* Initialize action controller here */
}
public function testAction()
{
// action body
}
}
我在“application/views/scripts/”中创建了一个包含名为 index.phtml 的文件的测试目录;
/views/scripts/test/index.phtml/ _ _
<br /><br />
<div id="view-content">
<p>View script for controller <b>Test</b> and script/action name <b>index</b></p>
</div>
当我尝试通过键入“http://localhost/test/”来呈现此文件时,我收到一个 404 错误,指出无法找到请求的 URL。我阅读过的所有 Zend Framework 文档和无数其他资源都表明该方法应该正确呈现。
我一定遗漏了一些东西,但是经过详尽的搜索后,无法找到其他有此特定问题的人。
问候罗恩