Laravel 5.6安装器下载项目后显示404错误原因咨询(PHP7.2)
解决Laravel 5.6页面404的问题
首先说明下,PHP7.2和Laravel5.6是完全兼容的,版本这块没问题,咱们从几个最常见的方向一步步排查:
1. 检查默认路由是否存在
Laravel默认的首页路由在routes/web.php文件里,你得确认里面有没有这条基础路由:
Route::get('/', function () { return view('welcome'); });
如果这条路由被删掉、注释或者修改了,访问项目根目录自然会出现404。要是你访问的是自定义路由,也要检查路由的HTTP方法(GET/POST等)和路径有没有写错。
2. 配置Web服务器的URL重写规则
Laravel需要服务器支持URL重写,才能把所有请求导向public/index.php,这是新手最容易踩的坑:
- Apache服务器:先确认
public/.htaccess文件存在(Laravel默认自带),同时Apache开启了mod_rewrite模块。如果.htaccess内容丢失或异常,可以替换成官方标准内容:
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Send Requests To Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>
- Nginx服务器:在你的站点配置文件里添加这段重写规则,确保请求能正确转发到入口文件:
location / { try_files $uri $uri/ /index.php?$query_string; }
配置完成后记得重启Web服务器生效。
3. 确认Web服务器根目录指向正确
很多新手会犯的错误:把服务器根目录直接指向Laravel项目的根文件夹,而不是项目里的public目录。你需要把Apache的DocumentRoot或者Nginx的root配置项,设置为/你的项目路径/public,这样才能保证路由系统正常工作。
4. 清除路由及缓存文件
如果你之前运行过php artisan route:cache生成了路由缓存,之后修改了路由却没重新缓存,就会出现路由不生效的404。可以运行以下命令清除缓存:
php artisan route:clear
保险起见,也可以顺便清除配置和视图缓存:
php artisan config:clear php artisan view:clear
5. 检查.env文件的URL配置
确认.env文件里的APP_URL设置正确,比如本地开发一般是APP_URL=http://localhost或者你自定义的本地域名,这个配置虽然不直接影响基础路由,但偶尔会因为URL解析逻辑导致异常。
按照上面的步骤逐一排查,应该就能解决你的404问题了。
内容的提问来源于stack exchange,提问作者user3727110
相关产品推荐
相关产品推荐

