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

Oll*_*lly 5 apache mod-rewrite ruby-on-rails

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

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

Slo*_*vic 2

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

RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule .? /404.html [L]
Run Code Online (Sandbox Code Playgroud)

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