S3の静的webサイトで404時に別のドメインに飛ばす時
問題は解決してませんが、ごまかし方だけメモ
やりたいこと
subdomain.domain.com
で404エラーがでたら
domain.com/404
に遷移する
サブドメインドットコムはS3単独の静的webサイトで、クラウドフロント通したりはせずに、Route53でサブドメインを振っています。
やってみたことの一部
S3のリダイレクトルールをこんな感じで書いてみました。
<RoutingRules> <RoutingRule> <Condition> <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals> </Condition> <Redirect> <Protocol>https</Protocol> <HostName>domain.com</HostName> <ReplaceKeyPrefixWith>404</ReplaceKeyPrefixWith> </Redirect> </RoutingRule> </RoutingRules>
が・・・
sudomain.domain.com/uwaaaaa/
こういうありえないアドレスにアクセスすると
domain.com/404/uwaaaaa/
うーーん。。。何故か遷移元のURLを引き継いでしまいます。。。
とりえずのごまかし方
引き継がないようにあれこれやってみましたが、結果的にはごまかす方向で逃げました。
<ReplaceKeyPrefixWith>404</ReplaceKeyPrefixWith>
↓
<ReplaceKeyPrefixWith>404?referer=</ReplaceKeyPrefixWith>
どうしても引きはがせないURLの部分を何の意味もないクエリストリングにすることで404の画面をそれっぽく見せることにしました。
ごまかしに過ぎませんが、これは一体。。うーーん。。。