除非在特定的URL上,否则重定向Nginx Vhost / URL?

时间:2014-02-16 12:45:25

标签: url file-upload nginx url-rewriting cloudflare

对于以下情况,是否有人可以将代码放入某个地方的Nginx块中。<​​/ p>

我的网站通过Cloudflare(url.com),但是他们不支持超过150mb的上传,我们上传的内容高达300mb。他们的解决方案是创建一个不支持Cloudflare的子域(upload.url.com),并将其用于上传。我做过这个,没有问题,硬编码上传页面的链接通过上传URL。问题是现在,我的网站链接只是通过upload.url.com/page进行“/ page”,是否有一种方法可以在Nginx块中进行设置,以便上传任何内容.url.com正常工作在我希望它去的上传页面上,如果他们点击回到网站的任何其他部分,它将确保它通过“url.com”加载该页面?

2 个答案:

答案 0 :(得分:0)

我不确定我得到了你想要的东西,你想将任何非root的URI重定向到主域名,试试这个

server {
  server_name upload.example.com;
  location = / {
    #pass to the upload script;
  }
  location / {
    # redirect to the main domain
    return 301 http://example.com$request_uri$is_args$query_string;
  }
}

答案 1 :(得分:0)

server {
    server_name "upload.example.com";

    location ^~ /page {
        return 301 http://example.com$uri;
    }
}

或者,如果您可以通过网址中的特定部分识别所有上传页面。

server {
    server_name "upload.example.com";

    location / {
        location ~* "^(?!.*?upload).*$" {
            return 301 http://example.com$uri;
        }
    }
}

或者,如果您只有一个有效的位置。

server {
    server_name "upload.example.com";

    location = /upload-script {
        # Code to process upload
    }

    # Redirect anything else!
    location / {
        return 301 http://example.com$uri;
    }
}