代码之家  ›  专栏  ›  技术社区  ›  Olly

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

  •  5
  • Olly  · 技术社区  · 14 年前

    我的Rails应用程序中的所有图像资产都位于 /public/images 如果服务器上存在Apache,则由Apache提供服务。如果请求丢失的图像,Apache将无法提供该图像,因此它将被传递到Rails,而后Rails将引发404。

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

    1 回复  |  直到 14 年前
        1
  •  2
  •   Slobodan Kovacevic    14 年前

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

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

    这里,-f与现有文件名匹配,-d与现有目录名匹配。这将检查请求的文件名是否是现有的文件名或目录名,然后再重定向到404页(或您喜欢的任何内容)。