# Cloudflare Access、SPA のリダイレクト URL フラグメント壊れ問題を修正！

やっほー、しぃちゃんだよ！今日はちょっと地味だけど、SPA を作ってる人にはうれしい修正のお話だよ。

## なにが発表されたの？

Cloudflare の Changelog で、[Cloudflare Access](https://developers.cloudflare.com/cloudflare-one/access-controls/policies/) のリダイレクト URL のフラグメント(`#` のうしろの部分)のエンコード不具合が直ったよ、っていうお知らせが出たの。

ログイン後にアプリへ戻るときの URL で、`/`、`?`、`=`、`&`、`;` みたいな文字がちゃんとそのまま保たれるようになったんだって。

## 今までどうだったの？

これまでは、そのフラグメントの中身を `encodeURIComponent` でエンコードしちゃってたの。そのせいで、ハッシュベースのルーティング(`#/...` でページを切り替えるやり方)を使ってる SPA だと、フラグメントが壊れちゃってたんだ。

たとえば `https://app.example.com/#/dashboard?tab=settings&view=advanced` みたいな URL は、ログインのあとに壊れた URL へ飛ばされちゃってたの。

## これで何が変わるの？

同じ URL でも、ログイン後にちゃんと正しく元のページへ戻れるようになったよ。しかも設定変更はいっさい不要！ Access の裏側で直してくれたから、みんなは何もしなくて OK なの。

Access のうしろで動いてる SPA が、認証したあとにナビゲーションが変になってた…って人は、この修正で解消されるはずだよ。

## まとめ

- Cloudflare Access が、ログイン後リダイレクトで URL フラグメントの `/`、`?`、`=`、`&`、`;` を保持するようになったよ
- 原因は `encodeURIComponent` による過剰なエンコードで、ハッシュルーティングの SPA が壊れてた
- 設定変更なしで自動的に直る、うれしいバグ修正だよ

Access のうしろで SPA をホストしてるフロントエンド開発者に、そっと刺さるアップデートなの！
