这令我感到困惑。我最近急忙设置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
答案 0 :(得分:0)
好的,所以我不得不将AllowOverride更改为All。这意味着Apache2现在将处理我的.htaccess文件。
然后我需要通过sudo a2enmod rewrite
启用mod重写,然后重启apache,即sudo service apache2 restart