React路由与Apache服务器API共存问题求助
解决方案:调整.htaccess规则同时兼容React路由与API端点
直接使用以下.htaccess配置即可解决问题:
RewriteEngine On RewriteBase / # 排除所有API路径(不区分大小写) RewriteRule ^api($|/) - [L,NC] # 直接放行index.html RewriteRule ^index\.html$ - [L] # 对非文件、非目录的请求,转发到index.html处理React路由 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L]
关键调整说明:
- 添加
NC标志:解决API路径大小写问题(你服务器上的目录是API,但规则里写的是api,Apache默认区分大小写,NC让规则匹配时不区分大小写) - 明确开启
RewriteEngine On:确保重写模块生效(之前的配置可能漏了这一行,导致规则不生效) - 规则顺序优先级:先排除API路径,再处理React路由转发,保证API请求不会被误转发到index.html
之前配置的问题分析:
- 缺少
RewriteEngine On:如果没开启重写引擎,所有规则都不会生效 - 未处理大小写差异:你的API目录是
API,但规则里用的是小写api,Apache默认区分大小写,导致规则无法匹配API请求 - 规则顺序逻辑正确,但缺少必要的标志和引擎开启指令,导致排除API的规则未生效
内容的提问来源于stack exchange,提问作者Pizzaboy
相关产品推荐
相关产品推荐

