laravel 创建路由失败原因
第一次安装laravel,安装完成后试着去创建第一个路由,然后在浏览器访问http://localhost/hello 时出现错误404。
路由如下:
//官方自带
Route::get('/', function () {
return view('welcome');
});
//我写的
Route::get('hello', function () {
return 'helloworld!';
});
以上这两个路由官方自带的好用,我写的不好用。
原因:
后来经过查找,发现是由于提供web服务的apache的一个mod_rewrite没有启动造成的。
下面是启用mod_rewrite模块的方法。
第一种方式:
sudo a2enmod rewrite
第二种方式:
sudo ln -s /etc/apache2 /mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
最终都是在/etc/apache2/mods-enabled这个目录下面建立了一个链接,这个目录下得模块都是随服务器启动而启动的。
要使rewrite生效,此外还需要修改额外的配置:
修改/etc/apache2/apache2.conf中如下位置
< Directory /var/www >
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
< /Directory >
将其中的 AllowOverride None 修改为 AllowOverride All,然后重启服务器即可。
sudo /etc/init.d/apache2 restart
如果你在用apache或者ngix时也遇到这种问题的话,请尝试这种思路看下。