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;
}
}
Ответы
Ответ 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/;