Laravel 10部署到Ionos后首页404,其余路由正常
问题分析与解决方案
1. 先修正.htaccess的拼写错误
你当前的.htaccess里存在明显笔误:%{HTTM_HOST}应为%{HTTP_HOST},这个错误会导致HTTPS强制跳转逻辑失效,可能干扰首页的请求处理。修正后的HTTPS规则部分如下:
# Force https RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
2. 检查Ionos站点根目录指向
这是导致public/public路径重复的核心原因:
- 在Ionos的站点配置中,必须将网站根目录设置为Laravel项目的
public文件夹,而非项目根目录(比如/var/www/mysite)。 - 若根目录指向项目根,请求首页时服务器会先读取根目录的.htaccess,尝试指向
public/index.php,而Laravel内部又会基于服务器路径或配置再拼接public,最终导致public/public的错误路径。
3. 核对.env配置
确保.env文件中的APP_URL设置正确,不要带/public后缀:
APP_URL=https://mysite.com
如果APP_URL错误包含/public,Laravel生成路由和资源路径时会重复拼接public目录。
4. 清理Laravel缓存
部署后执行以下命令清除缓存,避免旧配置干扰:
php artisan cache:clear php artisan route:clear php artisan config:clear
5. 确认首页路由定义
检查routes/web.php中首页路由是否正确定义,比如:
Route::get('/', function () { return view('welcome'); });
确保没有被其他优先级更高的通配路由(比如Route::get('/{any}', ...))覆盖。
内容的提问来源于stack exchange,提问作者kiruahig
相关产品推荐
相关产品推荐

