我有很多热链接图片。这些图片没有问题,但由于 URL 更改,有些图片不再存在。是否可以仅在请求图片但图片不存在时显示类似 imageshack“未找到图片错误”的图片?
现在我有 404 页面但我仍然想保留它。
我可以放一张简单的 jpg/gif 图片并显示“未找到”,并且仅在未找到图片时显示该图片。
说实话我不知道从哪里开始
我的路径可以是任何路径,从 /level1/ 到 /level1/..../blah/oldpicture.jpg,并且大多数图片都是由 Gallery2 使用 url_rewrite 呈现的,所以它们实际上转到 php。
location / {
try_files $uri $uri /main.php?url=$1;
#rewrite ^/(.+)$ /main.php?url=$1 last;
}
我也在 php fpm 配置部分使用它
fastcgi_intercept_errors on; # to support 404s for PHP files not found
我可以通过编码来尝试这一点,但这是第二种选择。
答案1
你可以根据位置更改错误页面。例如:
location ~ \.(png|jpg)$ {
error_page 404 /404.png;
}
答案2
也许可以添加一个位置块来对图像执行 try_files,并在失败时从指定位置重写。类似这样(未经测试):
location ~* \.(png|jpg|gif) {
try_files $uri $uri/ @noimage;
}
location @noimage {
rewrite ^ http://yousite.com/noimage.png;
}
location / {
try_files $uri $uri/ /main.php?url=$1;
}
location \.php {
...
}