每当我的域名出现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;
}
}
答案 0 :(得分:18)
通过它有一个更快的方法:
error_page 404 = @foobar;
location @foobar {
return 301 /;
}
“更快”是指“使用return而不是重写”,“在Web服务器内部没有无用的正则表达式匹配”。
答案 1 :(得分:13)
这应该有效:
error_page 404 = @foobar;
location @foobar {
rewrite .* / permanent;
}
答案 2 :(得分:12)
这是我使用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;
}
}
答案 3 :(得分:7)
error_page
设置可以为您完成此操作:
error_page 404 =301 http://example.com/;