我的Rails应用程序中的所有图像资源都位于/public/images
,如果它们存在于服务器上,则由Apache提供服务。如果发出了丢失图像的请求,Apache就无法提供服务,因此它会被传递给Rails,然后Rails会引发404.
理想情况下,我希望在Apache级别处理任何丢失图像的请求,而不是转发到Rails。我怎样才能做到最好?
答案 0 :(得分:2)
如果目录和文件不存在,则使用mod_rewrite重定向到404页面。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .? /404.html [L]
这里,-f匹配现有文件名,-d匹配现有目录名。这将检查所请求的文件名在重定向到404页面之前是否不是现有文件名或目录名称(或者您喜欢的任何内容)。