Nginx: Возврат 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;
}
}
4 ответов:
Есть более быстрый путь:
error_page 404 = @foobar; location @foobar { return 301 /; }Под " быстрее "я подразумеваю" нет бесполезного сопоставления регулярных выражений внутри веб-сервера", используя return вместо перезаписи.
Вот окончательное решение, которое я получил, чтобы работать с помощью 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; } }
Comments