我的图像都保存在应用程序本身中,因此被 /images/12345.jpg 引用,在某些地方它已被硬编码到 cms 的内容中,有或没有完整的 url。
图像现在已移至 s3,因此我想为以下格式的 url 添加重定向:/images/12345.jpg|png|gif 或 http://www.example.com/images/12345。 jpg|png|gif (但仅适用于数字文件名)
并将它们指向
http://my.images.images.s3.amazonaws.com/540x310/12345.jpg|png|gif
我目前有
use Rack::Rewrite do
rewrite %r{images\/(\d*.)(jpe?g|png|gif)$}, 'http://my.images.images.s3.amazonaws.com/540x310/$1$2'
end
但这似乎不太正确。
更新-----当然源中的URL没有改变,我应该意识到这一点。直接点击链接会报错:
没有路线匹配 [GET] "/ http://my.images.images.s3.amazonaws.com/540x310/13135.jpeg "
(注意前面的斜线)
所以重写是有效的,但它认为它应该路由到内部链接而不是外部 URL。
UPDATE2--------更改为
r302 %r{(?:images\/)(\d*.jpe?g|png|gif)$}, "http://my.images.images.s3.amazonaws.com/540x310/$1"
如果我去 http://www.example.com/images/13135.jpeg现在将重定向
但不会在站点本身中呈现图像。