nginx exibe uma imagem não encontrada

2

Eu tenho muitas imagens de links. O que é bom, mas alguns não existem mais devido a alterações na URL. É possível exibir algo como imageshack "imagem não encontrou erro" imagem somente quando as imagens são solicitadas e não existem?

Agora eu tenho a página 404, mas eu ainda gostaria de manter isso.

Eu posso colocar uma imagem simples em jpg / gif dizendo "Não encontrado" e exibir isso somente quando as imagens não forem encontradas.

para ser honesto, não sei por onde começar

meu caminho pode ser qualquer coisa de / level1 / para /level1/…/blah/oldpicture.jpg e a maioria das fotos são renderizadas pela Gallery2 com url_rewrite, então elas realmente vão para o php.

 location / {
                try_files $uri $uri /main.php?url=$1;
                #rewrite ^/(.+)$ /main.php?url=$1 last;
        }

também eu uso isso na parte de configuração do php fpm

fastcgi_intercept_errors on; # to support 404s for PHP files not found

Eu poderia tentar isso codificando, mas essa é uma segunda opção.

    
por Abhishek Dujari 22.02.2013 / 19:08

2 respostas

10

Você pode alterar a página de erro com base no local. Por exemplo:

location ~ \.(png|jpg)$ {
    error_page 404 /404.png;
}
    
por 22.02.2013 / 19:45
2

Talvez adicione um bloco de localização para fazer um try_files em imagens e uma reescrita de um local nomeado em caso de falha. Algo parecido com isto (não testado):

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 {
    ...
}
    
por 22.02.2013 / 19:40