如何配置Apache来处理丢失的图像资产?

时间:2010-06-10 10:21:58

标签: ruby-on-rails apache mod-rewrite

我的Rails应用程序中的所有图像资源都位于/public/images,如果它们存在于服务器上,则由Apache提供服务。如果发出了丢失图像的请求,Apache就无法提供服务,因此它会被传递给Rails,然后Rails会引发404.

理想情况下,我希望在Apache级别处理任何丢失图像的请求,而不是转发到Rails。我怎样才能做到最好?

1 个答案:

答案 0 :(得分:2)

如果目录和文件不存在,则使用mod_rewrite重定向到404页面。

RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule .? /404.html [L]

这里,-f匹配现有文件名,-d匹配现有目录名。这将检查所请求的文件名在重定向到404页面之前是否不是现有文件名或目录名称(或者您喜欢的任何内容)。