Я хотел бы знать, могу ли я условно обслуживать конкретный файл как страницу 404 на основе URL-адреса запроса или запрошенного типа содержимого / mime-типа.
Я предполагаю что-то вроде:
if url_extention == (gif|jpg|png):
/404.gif
else:
/404.html
Я не слишком знаком с NGINX 404 / переписывание URL.
На данный момент у меня есть:
server
{
listen 80;
server_name static.example.com;
access_log off;
location / {
root /warehouse/web/static/static.example.com;
expires 3d;
error_page 404 = /404.gif;
}
location /404.gif {
root /warehouse/web/static/404;
}
}
Не совсем красивая конфигурация, но она должна работать.
error_page 404 = @missing;
location @missing {
if ($request_filename ~* [gif|jpg|png]$){
rewrite ^ /404.gif;
}
if ($request_filename !~* [gif|jpg|png]$){
rewrite ^ /404.html;
}
}