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

Ziggy路由在Laravel+Vue+Inertia+Apache环境下的URL重复问题求助

问题:Ziggy路由在Laravel 10+Vue3+Inertia+Apache环境下的URL重复问题

环境与核心问题

  • 项目技术栈:Laravel 10 + Vue 3 + Inertia + Vite
  • 部署路径:http://localhost/blender/public
  • .env配置:已将APP_URL和BASE_URL设置为上述部署地址
  • 异常表现:后端route('dashboard')生成的路由地址本身正确,但页面加载后浏览器URL会自动重复基础路径,比如原本的/blender/public/dashboard会变成/blender/public/blender/public/dashboard,推测是前端JS修改导致。这直接导致Vite热重载功能失效,每次修改代码后路由会不断追加/blender/public,最终出现404错误。

已尝试的解决方案

  1. 在项目根目录创建.htaccess文件,试图移除URL中的/public部分,文件内容如下:
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} -d [OR]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ ^$1 [N]

    RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
    RewriteRule ^(.*)$ public/$1

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php
</IfModule>
  1. 修改.env中的APP_URL为http://localhost/blender,但访问时出现404;自定义404模板输出url()->full()得到http://localhost/blender,给所有路由手动添加prefix('blender')后可正常访问。

关键现象梳理

  • Laravel+Inertia组合无法识别Apache环境下的站点基础URL
  • 修改.env的APP_URL和BASE_URL没有起到预期作用
  • 相同项目在本地macOS的Nginx环境(域名blender.test)下运行正常,仅Apache环境异常,且生产服务器必须使用Apache
  • 同一电脑上其他未使用Vite+Inertia的Laravel项目,在Apache环境下路由正常
  • 将Apache的DocumentRoot直接设置为项目的public文件夹后,项目可正常运行,说明问题出在http://localhost之后的路径部分

疑问

经过排查,怀疑是Laravel 10 + Vue 3 + Inertia自带的Ziggy路由与Apache环境冲突导致该问题,请问可能的原因是什么?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 09:43:24