I see this question has been asked and answered many times, but I am unable to make it work.

On a server with multiple virtual hosts I wish to make a catchall which responds to everything with a 404 that reveals no information.

I am running nginx version: nginx/1.8.1 on ubuntu 14.04.

My catchall looks like this

server {
        listen 80 default_server;
        listen 443 ssl default_server;
        allow all;
        charset utf-8;
        error_page 404 /404.html;
        root /mypath/html/;
        location = /404.html {
                root  /mypath/html/;
                }
        location / {
                return 404;
                }
        }


if I make a fake /etc/hosts dns say dongo.bilbo.com and point at my server then

http://dongo.bilbo.com/404.html shows me the correct 404 page with no Nginx info, however, any other path eg http://dongo.bilbo.com always shows me the standard Nginx 404 page.

Is there a way to customize my error page for this case?


I would add that the following works well for my real sites

    charset utf-8;
    error_page 404 /404.html;
    location /404.html {
        root /mypath/html;
        }

and there I do see the 404.html from /mypath/html when I visit missing pages.

Alternatively is there a way to override nginx's 404 page so it doesn't reveal the server.
--
Robin Becker

_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

Reply via email to