如何在cPanel上通过.htaccess区分React前端与Node后端请求?
cPanel部署Node后端与React前端的.htaccess配置调整方案
当前public_html目录下的.htaccess配置存在规则冲突,导致Node后端与React前端无法同时正常工作。需求是让Node配置仅处理/api路径的请求,同时保证前端路由正常。
问题现象
- 单独启用Node配置:API可正常工作,但前端页面无法访问
- 单独启用React配置:前端页面正常,但API请求返回前端HTML内容
- 同时启用两者:API可用,但浏览器访问前端时显示“Unauthorized”(请求被转发到后端)
调整后的.htaccess配置
# 统一开启RewriteEngine <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # NODE:仅处理/api开头的请求 RewriteRule ^api/(.*)$ http://127.0.0.1:3500/api/$1 [P,L] # REACT:处理前端路由 RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule . /index.html [L] </IfModule>
配置说明
- 统一管理RewriteEngine:将
RewriteEngine On和RewriteBase /放在最外层,避免重复开启模块 - Node规则限定/api路径:修改RewriteRule,仅匹配以
/api开头的请求,将其反向代理到Node服务的对应路径,避免干扰前端静态文件和路由 - 保留React路由规则:原有的React规则不变,确保非API请求都被转发到index.html,支持前端单页应用的路由跳转
这样配置后,/api开头的请求会被转发到Node后端处理,其他请求则由React前端接管,两者可以同时正常工作。
内容的提问来源于stack exchange,提问作者Nicolas Riccardi
相关产品推荐
相关产品推荐

