学习laravel过程中发现一个.htaccess路由跳转无效,最终搞了3个多小时,还是解决了,但原因不是很清楚,若读者清楚,还请留言。
环境:ubuntu64-1404, apache:2.4.7 PHP:5.5.9 lavavel:5.2.15
源码安装后只有根目录可访问,其它页面报404(此页面是apache的404,不是laravel的404页面),说明laravel安装正常,其它路由无法显示是apache的.htaccess未启作用。
经检查apache的rewrite模块已启用,并且将larave程序copy至win系统,正常,说明.htaccess配制正确
ubuntu系统中若将laravel5.2.15换为5.1.11,路由也是正常的,说明apache的配制也是正常的,就是5.2.15不行。
最终还是网上找来找去,看到的方法每个都试试,在下面的方法中得到启发,具体为:
修改/etc/apache2/sites-available/000-default(默认),将<Directory>的AllowOverride None修改为AllowOverride All;
如果是VirtualHost,可以增加相应的<Directory> ,例如:
<Directory "/var/www/html">
AllowOverride All
</Directory>
我是将/etc/apache2/apache2.conf中所有的None全部改为All,重启apache后就OK了。
原因是什么?为什么5.1.11OK,而5.2.15NG?我也不知道。