在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
返回给客户端。