我的理想设置是获取当前客户站点,上传带有正则表达式的 .htaccess,以匹配 URI,并且如果它找到某个文件扩展名,它将使用相同的路径,但使用更改的域名。
IE。
正常路径:
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 存储文件,但这并不能解决问题,因为它直接使用 S3,而不是使用 CloudFront。
答案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_URI 而不是 request_filename,这样不存在的子目录内的文件仍将代理/重定向。