2017-04-06 9 views
2

最近私のReact-RouterでhashHistoryの代わりにbrowserHistoryを使用するようにコードを変更しました。私が扱っているウェブサイトのユーザーの中には、URLをハッシュでブックマークしているものもあります。React-Router:私のURLをhashHistoryからbrowserHistoryにリダイレクト

古いURLはwww.mywebsite.com/#/page?query=paramのように見えます。誰かがブックマークした場合は、www.mywebsite.com/page?query=paramにリダイレクトされます。

.htaccessでこのリダイレクトが不可能なように見えるので、これを行う最もクリーンな方法は何か疑問に思っていましたか?

ありがとうございました。

+0

ユーザーがまだハッシュが入っているURLをクリックすると、サイトにはまったく行き着くのですか? –

+0

リンク上にハッシュが存在しなくなりました。私は、サイトを指しているブックマークまたは外部リンクについてのみ心配しています。彼らはサイトにアクセスしますが、正しいページにはアクセスしません。 – alexmngn

答えて

-1

あなた主成分で、一つは、あなたはおそらく、あなたがthis.props.location.pathnameを呼び出すことにより、現在のURLへのアクセスを得ることができ、URLハッシュが含まれている場合、あなたはそれを取り除くと、彼らが行きたいと思ったURLにユーザーをリダイレクトすることができ{this.props.children}をレンダリングし、に。

これは、ユーザーが他の場所から最初にサイトに戻ったときにのみ機能しますが、サイト上に既に存在していて、サイト上の他の場所に移動するためにブックマークを使用すると機能します。その理由は、メインコンポーネントのcomponentDidMountは、初期ロードまたは実際のページリフレッシュ時にのみ起動するためです。

これが役に立ちます。

関連する問題