无法在 cPanel 中的页面之间切换

can't switch between pages in cPanel

我是网络托管和 cPanel 的新手,所以请对我好一点... 我已经使用 React 构建了一个网站,并设法将其构建文件上传到 cPanel。它似乎工作正常,但是,每当我尝试在页面之间切换时,我都会收到 404 错误,尽管页面显然存在(例如,当我按下按钮切换到 mydomainname.com/about-us 时)。切换在本地使用 react-router 完美地工作.. 如果有人能帮我解决这个问题,我将不胜感激! 提前致谢!

这是因为 ReactJS 使用客户端路由。

要修复 404,请创建一个 .htaccess 文件并粘贴以下内容并将其上传到您的站点根目录。应该可以。

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

如果以上方法无效,请尝试以下方法 (recommended by ReactJS team),其中任何一个都应该有效

Options -MultiViews
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.html [QSA,L]

The switching works perfectly locally using react-router

路由在内置的 ReactJS 网络服务器上运行良好,但在 Apache 网络服务器上运行不佳。还要确保您使用的是反应路由器 Link 组件在页面之间导航,而不是 html 锚点 (a) 标签。

您必须将所有请求重定向到您的 index.html。您可以为此编辑 .htaccess。使用来自 react-router 的 <Link> 进行重定向。