在 Apache 服务器上处理 React Router

问题描述 投票:0回答:3

我在为 Apache 服务器上的 React 生成的 URL 路径重定向 404 错误时遇到问题。

场景:

假设我有一些由 React Router 生成的 URL:www.somewebsite.com/apps

问题

如果最终用户单击刷新,如何重定向回 www.somewebsite.com/apps?

我尝试过的:

到目前为止,我可以将用户重定向到 www.somewebsite.com。我只需要获取重定向之前的路径。

reactjs apache react-router
3个回答
5
投票

设置 Apache 重写规则以重写对 React 应用程序 (index.html) 的所有请求。

将其放入您的虚拟主机配置或 .htaccess 文件中。

<IfModule mod_rewrite.c>
    Options -MultiViews

    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.html [QSA,L]
</IfModule>

现在,当用户在像

/apps
这样的任何路线上按下刷新(或直接访问)时,您的React应用程序将被加载,并且路由器将显示相关路线。

注意:

RewriteCond
排除了静态文件的重写,这是必要的。


0
投票

在我的反应案例中,仅当我导航到具有多个斜杠的链接时才会发生此错误: 例如。 www.abc.com/support 适用于 Apache 重写规则,但 www.abc.com/support/[电子邮件受保护] 失败

我的解决方案是打开index.html并使所有链接都指向主域。 替换

"./"
"/"


0
投票

自 Apache 2.2.16 起,您可以在 FallbackResource

<Directory> 配置下设置
<VirtualHost>

FallbackResource /index.html

这将为所有未映射到文件的 URL 提供

index.html
服务,这允许 React Router 处理 URL。

© www.soinside.com 2019 - 2024. All rights reserved.