Nginx:如何只在所有位置块都失败时重写?

时间:2012-04-27 06:31:56

标签: url-rewriting nginx rewrite

我有一个网站需要使用https连接几乎整个网站,除了我需要通过http提供的几个位置。为此,我在nginx配置中设置了两个服务器。一个用于非安全连接,一个用于安全连接。但是对于非安全服务器,我希望只有在没有任何位置块被验证时才能重写到安全Web。

这可能吗?如果是,怎么样?

我的nginx配置的结构:

server {
   listen 80;
   ...
   location /foo1 { ... }
   location /foo2 { ... }
   # i can't get this rewrite to work only when all location blocks fail
   rewrite ^/(.*) https://foo.com/$1 permanent;
}
server {
   listen 443;
   ...
}

感谢名单

1 个答案:

答案 0 :(得分:1)

添加到server块的末尾:

location / {
    rewrite ^/(.*) https://foo.com/$1 permanent;
}