Laravel 8部署Hostinger共享主机后出现404 Not Found错误排查
Laravel 8 部署Hostinger共享主机404错误排查方案
主机根目录指向错误
Hostinger共享主机默认网站根目录为public_html,Laravel要求将项目的public文件夹设为文档根目录。登录hPanel检查域名配置,确认文档根目录是否精准指向Laravel项目的public目录,而非项目根目录——若指向错误,访问时会直接读取项目根目录文件,因找不到入口文件触发404。.htaccess 配置不兼容
Laravel public目录下的.htaccess需适配Hostinger环境,检查你的文件是否为标准Laravel配置:
<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>
若项目部署在子目录(如public_html/laravel),需在RewriteEngine On后添加RewriteBase /laravel/。
文件权限设置异常
Hostinger对文件权限有严格要求,确保以下目录权限正确:storage、bootstrap/cache目录设为755或775(禁止使用777)public目录及子文件权限设为755- 所有PHP文件权限设为644
权限错误会导致Laravel无法加载缓存或资源,间接引发404。
项目文件上传不完整
排查是否所有Laravel文件都完整上传,重点检查vendor目录——若依赖文件缺失,入口文件index.php无法加载核心组件,触发404。若Hostinger提供终端权限,可执行composer install重新安装依赖。缓存配置未重置
本地开发生成的缓存会与主机环境冲突,需清除缓存:
若有终端权限,执行以下命令:
php artisan cache:clear php artisan config:clear php artisan route:clear
无终端权限可临时在index.php开头添加代码,访问一次后删除:
<?php Artisan::call('cache:clear'); Artisan::call('config:clear'); Artisan::call('route:clear');
- 数据库配置错误
.env文件中数据库配置错误可能导致Laravel启动失败,部分环境下会直接返回404而非错误页面。检查DB_HOST、DB_PORT、DB_DATABASE、DB_USERNAME、DB_PASSWORD是否与Hostinger提供的数据库信息完全匹配,确保数据库已创建且用户拥有访问权限。
内容的提问来源于stack exchange,提问作者Ahmed Missaoui
相关产品推荐
相关产品推荐

