You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue 3 SPA部署到Plesk服务器刷新路由出现404错误该如何解决?

Plesk部署Vue3 History模式刷新404排查解决方案

第一步:确认Plesk站点Apache配置是否开启.htaccess支持

  • 登录Plesk面板,进入对应站点的「主机设置」页面
  • 找到「Web脚本和统计」板块,确认勾选了Apache的.htaccess支持选项,保存后重启Apache服务
  • 若使用的是Nginx+Apache混合模式,需要额外在Nginx配置里加 fallback 规则,Plesk默认Nginx会优先处理静态资源请求,不会把非静态请求转发给Apache处理,.htaccess规则自然不会生效

第二步:验证.htaccess规则有效性

  • 先测试.htaccess是否被读取:在.htaccess里加一行故意写错的规则比如InvalidRuleTest 1,刷新站点如果返回500错误,说明.htaccess是生效的,如果没返回500就还是第一步的配置问题
  • 如果确认.htaccess生效,修正后替换为以下适配Plesk的规则,注意如果你的Vue应用不是部署在根目录,要把RewriteBase改成对应的子目录路径:
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

第三步:Nginx模式的单独配置(如果站点关闭了Apache只用Nginx)

  • 进入Plesk对应站点的「Apache & Nginx 设置」页面
  • 拉到最下方的「附加Nginx指令」输入框,添加如下规则:
location / {
  try_files $uri $uri/ /index.html;
}
  • 如果部署在子目录,比如/app路径下,规则改为:
location /app {
  try_files $uri $uri/ /app/index.html;
}
  • 保存配置后重载Nginx服务即可生效

第四步:额外排查项

  • 确认Vue Router的base参数配置和部署路径一致,比如部署在子目录/app时,createWebHistory要传入'/app'作为base参数
  • 确认打包后的dist目录所有文件都正确上传到了Plesk站点的根目录,index.html存在且权限为644,文件夹权限为755
  • 清空浏览器缓存和Plesk的站点缓存后再测试刷新效果

内容的提问来源于stack exchange,提问作者sai kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 23:27:02