如果图片不存在,则通过 .htaccess 显示 no_picture.png
Posted
技术标签:
【中文标题】如果图片不存在,则通过 .htaccess 显示 no_picture.png【英文标题】:Show no_picture.png by .htaccess if picture is not exist 【发布时间】:2010-11-26 17:37:20 【问题描述】:如果请求的图片不存在,我想显示 no_picture.png。我应该用.htaccess 来做。非常感谢。
【问题讨论】:
【参考方案1】:RewriteEngine On
RewriteCond %REQUEST_URI \.(jpg|jpeg|gif|png|ico)$ [NC]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule .*$ /no_picture.png [L]
让我们分解一下每一行的含义。
RewriteCond %REQUEST_URI \.(jpg|jpeg|gif|png|ico)$ [NC]
检查请求的文件是否具有括号 ()
中的文件扩展名。在这种情况下,我们正在测试文件名是否以.jpg
、.jpeg
、.gif
、.png
或.ico
结尾
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
检查文件是否不存在,也不是目录。
RewriteRule .*$ /no_picture.png [L]
如果请求的资源/文件通过了所有这些测试,那么它就是一个不存在的图像。因此,将no_picture.png
的图像返回给浏览器。这将保留文件名。如果要重定向到no_picture.png
文件名,请将[L]
更改为[R]
【讨论】:
【参考方案2】:这也应该有效:
<FilesMatch "\.(jpg|jpeg|png|gif)$">
ErrorDocument 404 "/no_picture.png"
</FilesMatch>
【讨论】:
【参考方案3】:在您的 /images/ 目录中,将其添加到您的 .htaccess 中
RewriteEngine On
RewriteCond %REQUEST_FILENAME !-f
RewriteRule no_picture.png [L]
也就是说,如果请求的文件不存在,则将其重写为 no_picture.png
【讨论】:
不会包含不存在的 html 或其他文件类型吗? 是的,它可以用于任何事情。这就是为什么我提到它是针对特定图像目录的。可以将其更改为仅匹配某些文件扩展名(正如其他答案所做的那样)。【参考方案4】:RewriteCond %REQUEST_URI pic/(.*)
RewriteCond %REQUEST_FILENAME !-f
RewriteRule pic/(.*) pic/no_picture.png [L,E=STATUS:404]
【讨论】:
以上是关于如果图片不存在,则通过 .htaccess 显示 no_picture.png的主要内容,如果未能解决你的问题,请参考以下文章
text 如果本地不存在,则从实时域上传 - 必须添加到wp-content / uploads / .htaccess