我有一个网站的静态镜像,适用于所有普通页面。但是当用户提取带有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参数。
我该如何解决这个问题?
答案 0 :(得分:1)
试试这个 - 如果有参数,请使用@proxy。
location / {
error_page 404 = @proxy;
if ($args != "") {
return 404;
}
try_files $uri $uri.html $uri/ @proxy;
}