我正试图哄骗这个,
if request hit www.imagesserver.com/public/images/view/3421.png
然后
if response == 404
DO
重定向或重写
www.imagesserver.com/public/images/view/defualt.png
这只适用于此路径public / images / view / * .png,实现此逻辑的最佳方法是什么
答案 0 :(得分:1)
您可以在public/images/view/.htaccess
中使用此规则(如果不存在则创建它):
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(?!.+/defualt\.png$).+\.png$ /public/images/view/defualt.png [L,NC,R=307]
答案 1 :(得分:0)
一旦发出404,你就无法真正做到这一点,但你可以事先做到这一点:
RewriteCond ${REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\.(jpg|png)$
RewriteRule ^public/images/view/.* /public/images/view/defualt.png [L,R=301]
这将检查所请求的资源是文件还是目录,如果不是则仅应用该规则。
它还确保所请求的资源具有特定的图像扩展名 - 在这种情况下为jpg / png,但您可以根据需要使用明显的模式扩展它。
接下来,只有在/public/images/view/
中符合这些条件时才会触发重写规则。
接下来,我将此设置为从缺失的资源发出301重定向到默认图像,以便向客户端清楚地显示图像丢失。
注意:不确定是否有意,但您的默认图片文件名中有拼写错误:defualt.png