.htaccess を使用して Amazon S3 CloudFront からファイルを提供する

.htaccess を使用して Amazon S3 CloudFront からファイルを提供する

私の理想的な設定は、現在のクライアント サイトを取得し、URI に一致する正規表現を含む .htaccess をアップロードし、特定のファイル拡張子が見つかった場合は、ドメインを変更した同じパスを使用することです。

すなわち。

通常パス:

http://www.domain.com/something/images/someimage.jpeg
http://www.domain.com/assets/js/jquery.js

.htaccess を翻訳すると、上記は次のようになります。

http://mycdn.other.com/something/images/someimage.jpeg
http://mycdn.other.com/assets/js/jquery.js

何時間も続けて Google で検索しましたが、見つかりません。繰り返しますが、これは実際に Amazon の CloudFront を利用するためのものです。S3 は、バックアップと s3fs を使用したファイルの保存のためにすでに Web サイトにマウントされていますが、CloudFront ではなく S3 を直接使用しているため、問題は解決されません。

答え1

httpd-2.2.3-31.el5.centos でテスト済みおよび動作中

リダイレクト方法:

RewriteEngine On
RewriteCond %{REQUEST_URI} .*jpg$|.*gif$|.*png$ [NC]
RewriteRule (.*) http://www.google.com/$1 [R]

R により、ページは実際に新しいドメインにリダイレクトされますが、それがまさにあなたが探しているものであるかどうかはわかりません。

プロキシ方式:

RewriteEngine On
RewriteCond %{REQUEST_URI} .*jpg$|.*gif$|.*png$ [NC]
RewriteRule (.*) http://www.google.com/$1 [P]

P はプロキシを起動します (mod_proxy がインストールされていると仮定)。これにより、リダイレクトではなく、サーバーからコンテンツが送信されます。これにより、サーバーの作業量が増え、リダイレクトよりも大幅に多くの I/O 帯域幅が生成されます。プロキシは高価ですが、コンテンツのためにリモート サーバーや CDN にアクセスする代わりに、すべてが単一のドメインの下に表示されるようになります。

編集: request_filename の代わりに request_URI を使用するように更新しました。これにより、サブディレクトリ内の存在しないファイルは引き続きプロキシ/リダイレクトされます。

関連情報