Mod rewrite 如何让自定义模块在Zend Framework 2中工作?

Mod rewrite 如何让自定义模块在Zend Framework 2中工作?,mod-rewrite,apache2,zend-framework2,Mod Rewrite,Apache2,Zend Framework2,我已经在kubuntu上使用Apache/PHP/MySQL设置了一个本地web服务器,以使用ZendskeletonApp开发一个web应用程序。文档根目录设置为ZSA的公用文件夹: <VirtualHost *> ServerName localhost ServerAdmin webmaster@localhost DocumentRoot "/var/www/ZendSkeletonApplication/public" <Directo

我已经在kubuntu上使用Apache/PHP/MySQL设置了一个本地web服务器,以使用ZendskeletonApp开发一个web应用程序。文档根目录设置为ZSA的公用文件夹:

<VirtualHost *>
    ServerName localhost
    ServerAdmin webmaster@localhost
    DocumentRoot "/var/www/ZendSkeletonApplication/public"
    <Directory /var/www/ZendSkeletonApplication/public>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>
    ErrorLog /var/log/apache2/error.log
    LogLevel warn
    CustomLog /var/log/apache2/access.log combined
    ServerSignature On
</VirtualHost>
请求<代码>http://localhost正确检索
index.php
。此外,mod_重写也在起作用。我和他交换了最后一行

RewriteRule ^.*$ test.php [NC,L]
为了测试这一点,它是有效的

接下来,我编写了一个简单的“Hello World”模块来适应该体系结构。实际上,我甚至根据不同的教程编写了两个模块。但是每当我试图请求
http://localhost/helloworld
我收到一个404错误

The requested URL /helloworld was not found on this server.
我在ZF2中仔细检查了路线

在这一点上,我被卡住了。我是一名PHP开发人员,对服务器管理不太了解,所以我的设置很可能容易出错


我想问一问方向,我可能弄错了什么。你脑子里有什么陷阱我可以查一下吗?我还需要提供什么信息?

mod_rewrite实际上工作正常,错误出现在我阅读的两个教程中。 在更改了很多我想不起来的设置之后,404变成了500服务器错误。直到那时,我在apache错误日志中发现了一个提示

在这两个教程中都提到在view/Modulename/Index/Index.phtml中创建模板,而必须是view/Modulename/Index/Index.phtml(注意小写名称)。对于所有小写路径,它现在对我有效

错误日志中的错误消息(如果有人碰巧遇到相同的错误):

[Sat Sep 08 14:38:28 2012][error][client 127.0.0.1]PHP致命错误:未捕获异常“Zend\View\exception\RuntimeException”,消息为“Zend\View\Renderer\PhpRenderer::render:无法呈现模板“helloworld/index/index”;解析程序无法解析为/var/www/zendskletonapplication/vendor/zendframework/zendframework/library/Zend/View/Renderer/PhpRenderer.php:451中的文件“”

The requested URL /helloworld was not found on this server.