替换htaccess中不存在的映像



在stackoverflow上进行了一系列搜索后,我得到了这两个有效的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>

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

最新更新