默认生成的Zend项目在public目录下会自动生成一个.htaccess文件,这是用来实现伪静态,即隐藏index.php这个唯一入口文件的。
但是,搭建项目时遇到一个问题:URL中如果不加index.php就无法访问,加了index.php就可以访问。
查看apache的error.log,发现这个错误:
[Wed Nov 16 20:09:27.068594 2016] [negotiation:error] [pid 6628] [client 127.0.0.1:57786] AH00687: Negotiation: discovered file(s) matching request: /home/username/projects/projectsname/public/index (None could be negotiated).
解决:可能是 negotiation 模块的问题,打开 /etc/apach2/mods-avaliable/negotiation.conf
把里面一行 LoadModule negotiation_module /usr/lib/apache2/modules/mod_negotiation.so 注释掉就行了,
这个问题跟这个模块有关,具体原因我也不清楚。