Laravel项目部署到主机后除首页外跳转路由报404 Request Not Found问题求助
404问题排查修复方案
核心原因:Web服务器没有配置Laravel所需的伪静态规则,除首页外的请求没有被转发到index.php入口文件处理
情况1:使用Apache服务器(绝大多数虚拟主机默认用Apache)
- 检查
public_html目录下是否存在Laravel自带的.htaccess隐藏文件,漏传是最常见的诱因。 - 若文件缺失,手动在
public_html目录新建.htaccess,写入官方默认配置:
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On # 处理Authorization头 RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # 去除URL末尾斜杠 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # 所有非静态资源请求转发到入口文件 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>
- 确认主机已开启
mod_rewrite扩展,且站点配置中AllowOverride参数设为All,允许读取目录下的.htaccess配置。
情况2:使用Nginx服务器
修改站点Nginx配置的location /块,添加伪静态规则:
location / { try_files $uri $uri/ /index.php?$query_string; }
修改完成后执行nginx -s reload重启服务生效。
其他可选排查项
- 清除路由缓存:进入项目根目录
aqaraty,执行php artisan route:clear清除旧的路由缓存。 - 确认
.env中APP_URL参数与实际访问域名的协议、域名、端口完全一致。 - 检查路由定义是否存在拼写错误,本地测试正常可直接跳过该步。
内容的提问来源于stack exchange,提问作者Osama Amr
相关产品推荐
相关产品推荐

