Amazon S3とCloudfrontを使用して静的なWebサイトホスティングを設定する際にいくつかの問題があります。S3、CloudFront、Origin Pathを使用したサブフォルダリダイレクトの問題
私たちは、Amazon S3 + Cloudfrontを使用して静的なWebサイトを提供したいと考えている多くのWebサイトがあります。これらのWebサイトをすべて単一のS3バケットにホストしたいと考えています。
初期設定はかなり単純ですが、URLに末尾にスラッシュを付けないと、サブフォルダのリダイレクトに問題が発生しています。
たとえば、バケットから単一のWebサイトを設定する:
S3:WEBSITE1ため
バケット内容//bucket-name/websites/website1/index.html
S3 ://bucket-name/websites/website1/about/index.html
このバケットの静的なWebサイトホスティングを有効にしました。デフォルトのドキュメントは 'index.html'に設定されています
私はこの単一のウェブサイトを提供するCloudfront Webディストリビューションを作成しました。デフォルトのルートオブジェクトは 'index.html'に設定されています。
分布は「/ウェブサイト/ WEBSITE1」
に設定起源パスと静的なウェブサイトのURL「bucket-name.s3-website-us-east-1.amazonaws.com」を指すカスタム起源を持っていますまた、正しく「http://example.cloudfront.net/about/」にそれを移動するとき
を:配布URL「http://example.cloudfront.net」に移動するとき、それは正しく「//bucket-name/websites/website1/index.html S3」から「index.htmlを」文書を提供しています's3://bucket-name/websites/website1/about/index.html'の 'index.html'ドキュメントを提供します。
ただし、I om 「http://example.cloudfront.net/about」のような末尾のスラッシュは、「/ websites/website1」に設定されたOrigin Pathを持っているので、私は 'http://example.cloudfront.net/websites/website1/about/'にリダイレクトされます。Cloudfrontは 's3:// bucket-name/websites/website1/about /websites/website1/about/index.html 'は存在しません。
ここに何か不足していますか?これは、CloudfrontとS3だけを使用することは不可能なセットアップですか?
新しいディストリビューションを追加するときにルーティングルールを変更するために覚えておく必要があるということであるネット/について/ ")
私はあなたのディストリビューションのために複数の起点(各フォルダに1つ)を追加する必要があると思います –
@KhalidT。ahはい、これを設定しようとしているのですが、それはURLのサブフォルダを省略するとリダイレクトの問題になります –
S3はオブジェクトベースのストレージなので、ファイルとフォルダを区別します(すべてオブジェクトです)。後続のスラッシュを省略すると、このような動作が発生する可能性があります。 –