Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

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't have them on the blog and if anyone happens to click through from another site that they get kicked to the homepage.

How can I do this inside nginx?

 server {
        listen             12680;
        root       /home/noahc/webapps/nginx/html/noahc/;
        server_name    www.noahc.net, noahc.net;
        error_page 404 @foobar;

        location @foobar {
                rewrite  .*  / permanent;
                }
         }
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
973 views
Welcome To Ask or Share your Answers For Others

1 Answer

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...