AWS S3のWebホスティングで全てトップページにリダイレクトさせる
タイトル通りなんですけど。
閉鎖サイトの「閉鎖のご挨拶」ページを1ページだけ置いて、あとは全部トップページにリダイレクトする、というのをやりたかった。設置ページをindex.htmlとして、Webホスティングのエラーページ設定もindex.htmlにすれば、とりあえじ「どんなURLでアクセスされても閉鎖案内ページを表示する」ことはできる。でも、URLがそのままなので、なんか気持ち悪いですよね。
そこで、リダイレクションルールを使って、全アクセスをトップページにリダイレクトさせることにした。
悪い例
最初に考えたルールはこちら。
<routingrules> <routingrule> <redirect> <hostname>www.MySite.com</hostname> <replacekeywith> </replacekeywith></redirect> </routingrule> </routingrules> |
はい。察しの良い方はお分かりかと思いますが、これは文字通り全てがトップページへのリダイレクトになるため、無限ループが発生します。
広告
正解例
そんな無間地獄に陥らない記述がこちら。
<routingrules> <routingrules> <routingrule> <condition> <httperrorcodereturnedequals>404</httperrorcodereturnedequals> </condition> <redirect> <hostname>www.MySite.com</hostname> <replacekeywith></replacekeywith> </redirect> </routingrule> </routingrules> </routingrules> |
404のときだけトップページにリダイレクト、という寸法ですな。(ReplaceKeyWithの中身が空っぽなのでトップ。/を入れるとwww.MySite.com//へのリダイレクトになってしまう)