【发布时间】:2014-03-12 22:17:11
【问题描述】:
我继承了一个在 nginx 上运行的站点。许多页面(几十个)需要离开并被重定向,但大部分(数百个)页面不需要重定向。说“允许除此列表中的页面之外的所有页面正常返回”的正确语法是什么?我能得到的最接近的是 http 指令中的以下代码:
# nginx configuration
server {
listen someurl.org:80;
location /about/strategic-plan {
return 301 http://www.anothersite.com;
}
}
sn-p 正确地将页面 /about/strategic-plan 重定向到 http://www.anothersite.com,但所有其他页面请求都会生成 404。如果我使用 rewrite 指令而不是 return 指令,这也是正确的。
如果我删除了监听指令,所有页面都可以正常工作,但 /about/strategic-plan 不会发生重定向。
我的第一个问题:如何让 nginx 监听域而不必为站点中的每个页面指定位置?
第二:如何在不破坏整个网站的情况下重定向单个页面?
我必须在这里遗漏一些基本的东西。任何帮助表示赞赏。
【问题讨论】:
-
nginx配置完成了吗?
-
我发布的只是 nginx 配置的一部分。 完整的配置文件可以在pastebin.com/jQfeRa9Z>查看。请注意,我清理了公开显示的网址。
标签: redirect nginx return rewrite listen