Nginx: Return 301 Redirect When 404 Error

后端 未结 4 2008
醉梦人生
醉梦人生 2020-12-16 16:06

What I want to do whenever I get a 404 error on my domain, automatically 301 to the homepage.

I have a lot of old blog posts and such that were linked to, but I don

相关标签:
4条回答
  • 2020-12-16 16:23

    The error_page setting can do this for you already:

    error_page 404 =301 http://example.com/;

    0 讨论(0)
  • 2020-12-16 16:27

    This should work:

    error_page 404 = @foobar;
    
    location @foobar {
        rewrite  .*  / permanent;
    }
    
    0 讨论(0)
  • 2020-12-16 16:31

    There's a faster way through it:

    error_page 404 = @foobar;
    
    location @foobar {
      return 301 /;
    }
    

    By "faster" I mean "no useless regexp matching inside web server" by using return instead of rewrite.

    0 讨论(0)
  • 2020-12-16 16:35

    Here is the final solution that I got to work using webfaction.

    server {
            listen             12440;
            root       /some/path/here/nginx/html/noahc/;
            server_name    www.domain.net, domain.net;
            port_in_redirect off;
    
            location /{
                error_page 404 =  @foobar;
            }
    
            location @foobar {
                rewrite  .*  / permanent;
            }    
     }
    
    0 讨论(0)
提交回复
热议问题