Usando .htaccess para servir arquivos do Amazon S3 CloudFront

Usando .htaccess para servir arquivos do Amazon S3 CloudFront

Minha configuração ideal seria pegar o site de um cliente atual, fazer upload de um .htaccess com uma regex dentro, que correspondesse ao URI, e se encontrar uma determinada extensão de arquivo, usaria o mesmo caminho, mas com um domínio alterado.

ou seja.

Caminho normal:

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

.htaccess traduzido transformaria o acima em:

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

Pesquisei isso no Google por horas seguidas, sem sorte. Novamente, isso é para realmente usar o CloudFront da Amazon. O S3 já está montado no site para backups e armazenamento de arquivos usando s3fs, mas isso não resolve o problema, pois está usando o S3 diretamente, não usando o CloudFront.

Responder1

Testado e funcionando em httpd-2.2.3-31.el5.centos

Método de redirecionamento:

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

O R fará com que a página seja redirecionada para o novo domínio, que pode ou não ser exatamente o que você procura.

Método proxy:

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

O P causará um proxy (supondo que você tenha o mod_proxy instalado) que manterá o conteúdo vindo do seu servidor em vez de um redirecionamento. Isso fará com que seu servidor trabalhe mais e gerará significativamente mais largura de banda de E/S do que um redirecionamento. Os proxies são caros, mas garantem que tudo apareça em um único domínio, em vez de acessar um servidor remoto ou CDN para obter conteúdo

Editar: atualizei-o para usar request_URI em vez de request_filename, dessa forma, os arquivos dentro de subdiretórios que não existem ainda serão proxy/redirecionamento.

informação relacionada