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的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 react-router 链接会将我带到页面中间?
从 URL 中删除 '%20' - React-Router
带有 react-router 的 React.js:我的组件是不是应该对 url 的更改做出“反应”,反之亦然?