替换 htaccess 中不存在的图像

Replace images that does not exist in htaccess

在 Whosebug 上进行一系列搜索后,我得到了这两个有效的 htaccess 代码,但是,我不知道哪个更好。

实际上两者都可以正常工作,但在性能或速度上有什么不同吗?

<FilesMatch "\.(jpg|jpeg|png|gif)$">
ErrorDocument 404 "/no_profile_picture.png"
</FilesMatch>

RewriteEngine On
RewriteCond %{REQUEST_URI} \.(jpg|jpeg|gif|png|ico)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule .* /no_profile_picture.png [L]

当在您的站点根目录中找不到带有 jpg|jpeg|gif|png|ico 扩展名的图像时,这两个指令将用于显示 /no_profile_picture.png 的核心目的。但是有细微的差别。

<FilesMatch "\.(jpg|jpeg|png|gif)$">
ErrorDocument 404 "/no_profile_picture.png"
</FilesMatch>

该指令还将 return 404 (Http NotFound) 状态更改为 browser/client 但其他块仍将 return 200 (Http OK) 状态返回给客户端。因此,我建议使用 FilesMatch 块来正确显示所需的未找到图像,并 returning 404 给客户。