reactjs路由/ Apache服务器上的虚拟页面

时间:2019-08-12 21:46:14

标签: reactjs apache react-router

场景

我在我的应用程序中使用BrowserRouter条路线。因此,如果我的基地是“ localhost:3000 / site1”,则虚拟页面可能是“ localhost:3000 / site1 / route1”。这在开发中工作正常,但在apache服务器上却不行。

问题

我假设react dev服务器总是将请求发送到主index.js /路由器,而在apache服务器上,它实际上正在寻找一个名为site1 / route1的页面。如果我在虚拟位置中刷新页面时,会从apache收到“找不到页面”错误。

问题

当它在php服务器上时,如何使我的虚拟路由与我的生产React build一起使用?我需要通过.htaccess文件添加一些重定向魔术吗?

1 个答案:

答案 0 :(得分:0)

我通过在项目文件夹中使用apache友好的.htaccess文件来解决了这个问题

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  /([^/]+)/?$  [NC]
RewriteRule .*   rel-path/to/project/build/index.html  [L]

路径中的“构建”是由npm run build创建的构建文件夹,这是我将.htaccess放入项目文件夹的部分原因,因此,如果有人窥视我的项目文件夹,它们将立即发送到build / index.html