Подтвердить что ты не робот

Nginx: Return 301 Перенаправление при ошибке 404

Что я хочу делать всякий раз, когда получаю ошибку 404 в моем домене, автоматически 301 на домашнюю страницу.

У меня есть много старых сообщений в блогах и таких, с которыми были связаны, но у меня их нет в блоге, и если кто-то случайно нажимает на другой сайт, на который они попадают на главную страницу.

Как я могу сделать это внутри 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;
                }
         }
4b9b3361

Ответ 1

Вот окончательное решение, которое я должен использовать, используя 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;
        }    
 }

Ответ 2

Там есть более быстрый способ:

error_page 404 = @foobar;

location @foobar {
  return 301 /;
}

Под "более быстрым" я подразумеваю "отсутствие бесполезного регулярного выражения в веб-сервере" с помощью return вместо перезаписи.

Ответ 3

Это должно работать:

error_page 404 = @foobar;

location @foobar {
    rewrite  .*  / permanent;
}

Ответ 4

Параметр error_page может сделать это уже для вас:

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