nginx重定向单个/几个网址

时间:2014-03-12 22:17:12

标签: redirect nginx return rewrite listen

我继承了在nginx上运行的网站。一些页面(数十个)需要消失并被重定向,但不需要重定向大量(数百个)页面。说“允许除此列表中的所有页面之外的所有页面都能正常返回”的正确语法是什么?我能得到的最接近的是http指令中的以下代码:

# nginx configuration
server {    
    listen someurl.org:80;
    location /about/strategic-plan {
   return 301 http://www.anothersite.com;
}   
}    

该代码段正确地将页面/ about / strategic-plan重定向到http://www.anothersite.com,但所有其他页面请求都会生成404。如果我使用重写指令而不是return指令也是如此。

如果我删除listen指令,所有页面都能正常工作,但/ about / strategy-plan没有重定向。

我的第一个问题:如何在不必为网站中的每个页面指定位置的情况下让nginx收听域名?

第二:如何在不整个网站的情况下重定向单个页面?

我必须遗漏一些基本的东西。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

我在您的服务器中看不到root指令。同时添加默认location

server {       
    listen someurl.org:80;

    root /path/to/htmls;

    location / {
        # serve static files
    }

    location /about/strategic-plan {
        return 301 http://www.anothersite.com;
    }      
}