当前位置:web 服务器 > Apache >>

.htaccess 图片不存在 跳转到默认图片

您可以在.htaccess文件的顶部使用mod_rewrite来完成此操作:

RewriteEngine On
# Redirect "webp" images that do not exist to "jpg"
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\.webp$ /$1.jpg [R=301,L]
对于任何对不存在的.webp文件的请求,301重定向将被触发到同一个文件,但扩展名为.jpg。例如,/foo/bar/does-not-exist.webp被重定向到/foo/bar/does-not-exist.jpg。
若要同时检查目的.jpg是否存在(重新导向之前),您可以新增其他条件。例如:

# Check that corresponding ".jpg" file exists before redirecting
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/$1.jpg -f
RewriteRule ^(.+)\.webp$ /$1.jpg [R=301,L]


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]

RewriteCond %{REQUEST_URI} pic/(.*) 

RewriteCond %{REQUEST_FILENAME} !-f 

RewriteRule pic/(.*)   pic/no_picture.png [L,E=STATUS:404] 


在你的/ images /目录下,添加到您的.htaccess

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 

RewriteRule no_picture.png [L] 


Apache
IIS
Nginx
Tomcat
如果你遇到web 服务器难题:
访问www.zzzyk.com 试试
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,