Url Nginx:404错误时返回301重定向
每当我的域名出现404错误时,我想做的就是自动将301发送到主页 我有很多旧的博客帖子,这些都是链接到的,但是我在博客上没有这些帖子,如果有人碰巧从另一个网站点击,他们就会被踢到主页上 如何在nginx中实现这一点Url Nginx:404错误时返回301重定向,url,redirect,url-rewriting,nginx,Url,Redirect,Url Rewriting,Nginx,每当我的域名出现404错误时,我想做的就是自动将301发送到主页 我有很多旧的博客帖子,这些都是链接到的,但是我在博客上没有这些帖子,如果有人碰巧从另一个网站点击,他们就会被踢到主页上 如何在nginx中实现这一点 server { listen 12680; root /home/noahc/webapps/nginx/html/noahc/; server_name www.noahc.net, no
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;
}
}
这应该起作用:
error_page 404 = @foobar;
location @foobar {
rewrite .* / permanent;
}
这是我使用WebPosition得到的最终解决方案
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;
}
}
有一种更快的方法:
error_page 404 = @foobar;
location @foobar {
return 301 /;
}
“更快”是指“在web服务器内没有无用的regexp匹配”,使用而不是重写。错误页面设置可以为您做到这一点:
错误\u第404页=301http://example.com/;代码>我在noahc.net上有此设置。例如,每当我键入某个内容时,就会被发送到mediacom dns错误页面。有什么想法吗?我重新启动了nginx。当访问上述链接(不存在的链接)时,我发现404找不到nginx/1.0.6
,这可能是您(客户端)的问题?无论如何,这不意味着它工作不正常吗?我不应该得到重定向部分和301错误或否?是的,它不工作的权利,你应该得到重定向。请发布您的服务器{..}
块,可能是其他原因阻止了它的工作。这似乎不是正确的服务器{}块,因为您的网站运行在端口80上,而不是12680上(侦听12680;
)。否则这个方块看起来不错,应该可以用。太棒了,我喜欢它