React-Router:将我的 url 从 hashHistory 重定向到 browserHistory

Posted

技术标签:

【中文标题】React-Router:将我的 url 从 hashHistory 重定向到 browserHistory【英文标题】:React-Router: Redirect my url from hashHistory to browserHistory 【发布时间】:2017-09-01 17:45:09 【问题描述】:

我最近对我的代码进行了更改,以便在我的 React-Router 中使用 browserHistory 而不是 hashHistory。虽然我工作的网站的一些用户可能已经用哈希标记了 URL。

旧网址看起来像www.mywebsite.com/#/page?query=param,我想确保如果有人将其添加为书签,它会被重定向到www.mywebsite.com/page?query=param

看起来.htaccess 无法进行此重定向,所以我想知道最干净的方法是什么?

谢谢。

【问题讨论】:

如果用户点击仍然包含哈希的 url,他们会到达该网站吗? 链接不再有哈希。我只关心指向该站点的书签或外部链接。他们访问的网站是,但不是正确的页面。 【参考方案1】:

在你的主要组件中,你可能会渲染this.props.children,你可以通过调用this.props.location.pathname来访问当前的url,如果url包含一个哈希,你可以剥离它并将用户重定向到他们的url想去。

这仅在用户第一次从其他任何地方返回您的网站时才有效,但如果他们已经在您的网站上并使用书签转到网站上的其他地方,我认为这不会奏效。原因是主组件的 componentDidMount 仅在初始加载或实际页面刷新时触发。

希望这会有所帮助。

【讨论】:

以上是关于React-Router:将我的 url 从 hashHistory 重定向到 browserHistory的主要内容,如果未能解决你的问题,请参考以下文章