Amazon S3的简单重定向规则

时间:2014-09-02 17:08:16

标签: .htaccess redirect amazon-web-services amazon-s3 amazon-cloudfront

我正在使用S3和CloudFront来存储我网站的图像,CSS和JS文件 - 这些文件不是静态的,而是托管在合适的网络服务器上

由于CSS文件频繁更改,我使用的是版本号,以确保用户浏览器在更改时重新加载。当我在我的Apache Web服务器上托管CSS文件时,我使用了以下重定向规则

RewriteEngine On
# CSS Redirection (whatever.min.5676.css is redirected to whatever.min.css)
RewriteRule ^(.*)\.min\.[0-9]+\.css$ $1.min.css

通过这条简单的规则,http://www.example.com/all.min.15.css重定向到http://www.example.com/all.min.css

如何使用Amazon S3和/或CloudFront重现此类规则? 即将http://example.amazonaws.com/mybucket/css/all.min.3.csshttp://example.amazonaws.com/mybucket/css/all.min.42.css重定向到http://example.amazonaws.com/mybucket/css/all.min.css

(注意:我的S3存储桶未配置为网站,但应该如此启用重定向规则?)

1 个答案:

答案 0 :(得分:0)

注意:此答案不使用任何规则。这可能不是正确的答案。

我将使用查询参数来处理不同的版本,例如:

http://example.amazonaws.com/mybucket/css/all.min.css?ver42
http://example.amazonaws.com/mybucket/css/all.min.css?42
http://example.amazonaws.com/mybucket/css/all.min.css?ver=42
http://example.amazonaws.com/mybucket/css/all.min.css?20141014

确切地说,在我的动态网页中,version参数存储在变量中并附加到url(CSS和JS)。在开发过程中,我只需要增加/设置一个变量来强制浏览器加载新版本。这样,即使在Apache上也不需要重写规则。

缓存也可以正常工作,因为Last-ModifiedETag标题保持一致。

希望这有帮助。