Vue.js前端访问Laravel API路径问题求助:部署后请求被拦截
解决API访问被Vue Router拦截的问题
核心问题是当前服务器把所有请求(包括/api开头的请求)都指向了public_html下的Vue前端入口文件,导致Vue Router拦截了本该发给Laravel后端的请求。以下是具体解决步骤:
1. 配置服务器重定向规则(.htaccess)
在public_html目录下的.htaccess文件中添加规则,将/api开头的请求转发到Laravel后端的入口文件:
RewriteEngine On # 把/api开头的请求转发到laravel后端的public入口 RewriteRule ^api/(.*)$ ../laravel/public/index.php/$1 [L] # 非/api的请求交给Vue前端处理 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^ index.html [L]
注意:如果Laravel文件夹的实际位置不是public_html的同级目录,需要调整../laravel为正确的相对路径(比如Laravel在public_html内部的话,路径改为laravel)。
2. 确认Laravel API路由前缀
Laravel默认的api.php路由已经自带/api前缀(在RouteServiceProvider.php中配置),所以你在api.php里定义的Route::get('/somepage', ...),对应的访问路径就是https://www.example.com/api/somepage,无需额外修改路由。
3. 前端请求路径验证
确保前端发起API请求时使用的路径是/api/somepage,不要添加多余前缀(比如不要写成/laravel/api/somepage)。
4. 测试配置
修改.htaccess后,直接访问https://www.example.com/api/somepage,如果返回后端的JSON响应,说明配置生效;若仍被Vue拦截,检查:
.htaccess规则是否正确- cPanel的Apache模块中
mod_rewrite是否已开启
内容的提问来源于stack exchange,提问作者Mohammed El Ouali
相关产品推荐
相关产品推荐

