LoginSignup
0
2

More than 5 years have passed since last update.

CloudFrontはLocationヘッダー値を問答無用でURLエンコードする

Last updated at Posted at 2016-11-02

CloudFront使用時に, GETパラメータをいろいろくっつけたURIにリダイレクトすると想定しているパラメータじゃない値がくっついていて困りました.
しかもこれマニュアルに載ってなくない!? ということでさらに困っています.

何が起きているのか

CloudFrontはオリジンからのレスポンスヘッダのLocation値をURLエンコード(パーセントエンコード)を行った値で上書きしてからクライアントにレスポンスを返しているようです.

CloudFrontを通さずアクセスした場合

WebサーバでURLエンコードしてあるので hoge=%E3%81%82 が末尾に付いたURLがLocationヘッダーに設定されています.
ちなみに%E3%81%82です.
Developer_Tools_-_https___app001-test_h-navi_jp_area_admin_facilities_50665_edit_search_options_5Bcategory_id_5D_5.png

CloudFrontを通してアクセスした場合

%がエンコードされて%25になっています.
もちろん%25E3%2581%2582はデコードしてもにならないので困ります.
Developer_Tools_-_https___test_h-navi_jp__hoge__25E3_2581_2582.png

マニュアルに載ってない!?

AWSのマニュアルCloudFront が削除または更新する HTTP レスポンスヘッダーには, 「Locationヘッダーを書き換えるよ」という話は載ってません.
載ってないということは対処法もわからないので困っています.

「エンコード必要な文字が含まれてるURLにリダイレクトするなバカ」「Webサーバがエンコードしなければいいだけの話だろタコ」等の話はもっともですが, めんどくさいからCloudFrontがLocationヘッダーをエンコードしないようにする方法無いかなあというのが正直なところです.

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2