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//へのリダイレクトになってしまう)

About: dacelo


Leave a Reply

Your email address will not be published. Required fields are marked *