404在zend框架中的新控制器上

时间:2012-04-24 01:25:15

标签: php zend-framework

我使用

创建了一个新的控制器
zf Create Controller About 

但是当我尝试导航到路径(http://mysite.com/about)时,我得到了404.以下是详细信息

网站设置为 C:\阿帕奇\ htdocs中\ mysite.com \公共

我修改了vhosts文件(C:\ apache \ conf \ extra \ httpd-vhosts.conf)以添加虚拟主机

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.localhost
    DocumentRoot "C:/apache/htdocs/mysite.com/public"
    ServerName mysite.com
    ServerAlias mysite.com
    ErrorLog "logs/mysite-error.log"
    CustomLog "logs/mysite-access.log" common
</VirtualHost>

还添加了一个到windows hosts文件的映射 127.0.0.1 mysite.com

这是我公共文件夹中的.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]

我可以访问http://mysite.com,但当我尝试访问http://mysite.com/about时,我会收到404。

在我的httpd.conf中,我有以下

<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
</Directory>

<Directory "C:/apache/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

我缺少什么让这项工作?

1 个答案:

答案 0 :(得分:0)

感谢您发布详细的配置信息。

您需要在AllowOverride None区块内将AllowOverride All更改为<Directory "C:/apache/htdocs">

当AllowOverride为None时,这意味着.htaccess文件未被处理,因此您的URL不会重写到Zend Application的前端控制器。

另请参阅:how to configure htaccess in zend framework