配置如下:
<IfModule mod_rewrite.c>
RewriteEngine On
#指令定义一条规则条件,!-d非目录情况
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
#指令定义一条规则条件,!-f非regular文件
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
#正则规则所有路径非api的请求全部拦截转发到根index.html,P强制使用代理转发,L表明当前规则是最后一条规则,停止分析以后规则的重写。
RewriteRule !^/api(.*)$ /index.html [P,L]
</IfModule>
配置注意细节:
1.正则规则不能直接拦截根路径,apache和nginx处理逻辑可能不一样,拦截根路径会影响到/api的拦截策略。
2.当前前端拦截策略为所有非api请求路径全部拦截到/index.html处理,index.html(React Router)再处理前端路由转发。
发表评论