URL参数

时间:2017-10-26 04:46:40

标签: nginx

我有一个网站的静态镜像,适用于所有普通页面。但是当用户提取带有URL参数的页面时,我希望它直接尝试@proxy而不是本地静态文件。

https://www.example.com/test.html?query=foobar 应该从@proxy获取 https://www.example.com/test.html 应首先尝试从$uri $uri.html $uri/

获取

这是我当前的配置:

root /var/www/www.example.com/mirror/current;

location / {
   expires 12h;
   add_header Cache-Control public

   try_files $uri $uri.html $uri/ @proxy;
}

不幸的是,当有一个静态页面时,该配置始终提供静态页面,并且不会处理任何URL参数。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

试试这个 - 如果有参数,请使用@proxy。

location / {
    error_page 404 = @proxy;

    if ($args != "") {
        return 404;
    }
    try_files $uri $uri.html $uri/ @proxy;
}