温馨提示×

linux laravel为什么404

小樊
46
2026-10-24 19:34:16
栏目: 智能运维

在 Linux + Laravel 环境下出现 404,通常不是代码问题,而是服务器/路由配置问题。下面按最常见原因给你排查清单(从概率高到低):


一、Nginx / Apache 没重写 URL(最常见)

✅ Nginx 必须加 try_files

如果你用的是 Nginx,站点配置里一定要有:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

否则访问 /user/1 会直接 404。

修改后执行:

nginx -t
systemctl reload nginx

✅ Apache 需要开启 mod_rewrite

a2enmod rewrite
systemctl restart apache2

并且 public/.htaccess 必须存在(Laravel 自带)。


二、访问路径不对(直接访问项目根目录)

❌ 错误方式:

http://ip/laravel-project/

✅ 正确方式(入口是 public):

http://ip/laravel-project/public/

或

绑定域名到 public 目录

推荐做法:
Nginx root 指向:

root /var/www/laravel/public;

三、路由没写 / 缓存了

1️⃣ 路由是否存在

php artisan route:list

2️⃣ 清缓存

php artisan route:clear
php artisan config:clear
php artisan cache:clear

四、APP_URL 不对(影响 asset / 路由)

.env:

APP_URL=http://你的域名

改完:

php artisan config:clear

五、文件权限问题(Linux 特有)

chown -R www-data:www-data storage bootstrap/cache
chmod -R 775 storage bootstrap/cache

六、生产环境没关 debug(但不是 404 原因)

.env

APP_DEBUG=false
APP_ENV=production

七、最常见一句话总结

Linux 上 Laravel 404,90% 是 Nginx 没配 try_files,或访问的不是 public 目录


如果你愿意,可以把下面信息发我,我直接帮你改:

  • 用的 Nginx 还是 Apache
  • 站点配置文件
  • 访问的 URL
  • php artisan route:list 输出

我可以直接给你一份可用配置。

0 踩