Usando o .htaccess para servir arquivos do Amazon S3 CloudFront

1

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

ie.

Caminho normal:

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

.htaccess traduzido transformaria o acima em:

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

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

    
por Adrian A. 18.06.2010 / 03:57

1 resposta

3

Testado & Trabalhando 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 realmente redirecione para o novo domínio, o que pode ou não ser exatamente o que você está procurando.

Método de 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), o que manterá o conteúdo vindo do seu servidor ao invés 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 sob um único domínio, em vez de acessar um servidor remoto ou um CDN para o conteúdo

Edit: Eu atualizei para usar request_URI ao invés de request_filename, dessa forma arquivos dentro de subdirectoires que não existem ainda serão proxy / redirecionados.

    
por 18.06.2010 / 04:09