URL重写不适用于ZF和apache2

时间:2013-08-26 02:27:10

标签: php apache .htaccess mod-rewrite ubuntu

这令我感到困惑。我最近急忙设置VM去旅行。我安装了Ubuntu 12.04和LAMP。 PHP版本为5.5,Apache为2.4。我在家用机器上使用了相同的配置,它运行正常。

无论如何,问题是我只能访问我的ZF应用程序的索引控制器上的操作,例如:domainname /,domainname / index / info。如果我尝试任何其他控制器,例如domainname / test / view,我得到了apache 404错误。 (注意 - 注意ZF未找到错误)。

我认为这是URL重写的问题,但我的VM上的.htaccess与我的家用机器相同,我在虚拟主机配置中看不到会导致这种情况的任何内容。此外,如果它只是一个URL重写问题,我会认为它会进入所有网址,包括索引控制器......

这是我的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]

想法?

编辑:这是虚拟主机配置:

    DocumentRoot / home / kim / www / vhost / public     ServerName koop         SetEnv APPLICATION_ENV“开发”

<Directory /home/kim/www/vhost/public>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
            Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined

1 个答案:

答案 0 :(得分:0)

好的,所以我不得不将AllowOverride更改为All。这意味着Apache2现在将处理我的.htaccess文件。

然后我需要通过sudo a2enmod rewrite启用mod重写,然后重启apache,即sudo service apache2 restart