apache .htaccess设置允许react路由器工作,而不会阻止对服务器的API调用

rta7y2nd  于 2023-10-23  发布在  Apache
关注(0)|答案(1)|浏览(132)

当我将react应用部署到静态服务器时,它在刷新网页浏览器时崩溃了。为了解决这个问题,我在.htaccess文件中添加了以下代码:

RewriteRule ^index\.html$ - [L]
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]

这解决了渲染问题,因为它不再发送URL的get请求,而是使用React路由器。然而,这现在导致了一个问题,任何API调用现在都无法通过我的服务器,而是提供index.html文件。
任何帮助将不胜感激。

vjrehmav

vjrehmav1#

所以,我有点晚了,但你可以添加一个重写条件,以检查请求URI是否有API。让我们假设你的API在根目录下的文件夹API/上,所以你的文件夹结构看起来像这样:

/.htaccess
/index.html ----> your react entry point
/api/ ----> here is your api files
/assets/

您的htaccess现在告诉每个请求转到index.html文件,但您可以在.htaccess的开头添加以下代码来检测API调用:

RewriteCond %{REQUEST_URI} ^/api
RewriteRule ^ api/index.php [L]

这应该工作,我用XAMPP 8测试它。

相关问题