基本Zend应用程序 - URL无法正确路由

时间:2012-12-06 20:05:25

标签: zend-framework frameworks

我是Zend的新手并尝试创建我的第一个Zend应用程序。我使用zf.sh来创建我的项目。我保留了所有未触及的内容,只修改了默认IndexController.php中的indexAction方法,为视图分配了一些数据。

我转到网址mydomain / myapp /,视图加载成功。但是,我去了mydomain / myapp / index,我找不到一个页面。我在IndexController.php中创建了另一个名为testAction的方法。我尝试通过mydomain / myapp / index / test,我也找不到一个页面。

由于我按原样保留所有配置(由zf.sh生成),我认为这一切都应该开箱即用,所以我不确定出了什么问题。

1 个答案:

答案 0 :(得分:0)

听起来这可能是新项目的vhost设置的问题。

快速入门中有一些关于creating a virtual host的信息。需要注意的重要事项是Document RootDirectory部分应该具有相同的路径,该路径指向项目的public文件夹。此外,AllowOverride All指令很重要,因为它允许.htaccess目录中的public文件设置重写规则。

如果您使用zf.sh创建项目,则应在docs目录中看到名为README.txt的文件。此文件将包含一些文本,以及示例vhosts配置 - 它应该已包含正确的配置以帮助您入门。您可以简单地将此文件中的<VirtualHost>...</VirtualHost>部分剪切并粘贴到vhost文件中(您需要找到针对特定操作系统执行此操作的正确方法),它应该可以正常工作。

我似乎记得Ubuntu的一件事是sites-available目录中的文件不应.conf结尾,否则将不会被解析(YMMV)。您还必须记得为Ubuntu启用vhost(sudo a2ensite <The name of your vhost>)并重新加载apache配置(Ubuntu为sudo apache2 reload)。

另请注意,zf.sh将在项目的public目录中创建.htaccess文件。您不应该触摸此文件,但请确保它在那里。它包含重写规则,告诉apache通过index.php发送应用程序的所有请求以进行路由。

希望这有帮助。