【发布时间】:2021-03-19 16:06:17
【问题描述】:
我知道这是一个常见问题部分,但我认为这种情况有些独特。
我正在以 WP 插件的形式运行 React 应用程序。以下是它的工作原理:
插件设置为在特定页面模板 (events.php) 上工作。 React 应用程序也配置为在此模板上工作。因此,/events/(设置为使用该模板的页面)实际上是应用程序的主页。这一点很重要,因为简单的“包罗万象”重定向解决方案并不能解决我的问题,因为用户需要可以访问网站的其余部分。
事件是通过 Salesforce SOQL 查询引入的。该应用程序显示事件源,并且由于日历事件的性质,路线显然是动态的并且不断变化。这是我生成路线的代码:
const generateEventRoute = route => {
return (
<Route key={route.Id} exact path={`/event/${route.Id}`}>
<SingleEvent {...route} />
</Route>
)
}
这是路由器系统的其余部分:
<Router basename="/events">
<ScrollToTop />
<Switch>
<Route exact path="/">
<EventFeed />
</Route>
{eventList.map(event => generateEventRoute(event))}
</Switch>
</Router>
问题和其他人一样,如果从主页开始,我可以访问路由,但直接导航到它们时无法访问它们(在 URL 栏中输入地址)。
到目前为止,我尝试了一种重定向规则,但无济于事(我根本不精通 Apache 配置或重定向):
RewriteRule ^events/(.*)$ /events [R=301,NC,L]
这导致了“重定向过多”错误。我希望这可以通过一些我不够聪明的魔法重定向来解决,但我怀疑它可能比这更复杂。
想法?
【问题讨论】:
标签: reactjs wordpress react-router