将原始请求的URL添加到重写规则中吗?

将原始请求的URL添加到重写规则中吗?

他们与我们的托管服务提供商合作,添加了一条 nginx 规则来帮助我们阻止对特定文件夹中文件的访问。基本上,如果用户登录了 WordPress 网站,它就会授予他们访问该文件的权限。否则,它会将他们重定向到https://www.example.com/login/

这是目前正在实施的:https://gist.github.com/Garconis/6be796b51994c79010cb0c3a3cfedd86

set $bar 0;
set $becue 0;
if ( $request_uri ~* "wp-content/uploads/private" ) {
    set $bar 1;
} 
if ($http_cookie ~ "wordpress_logged_in") {
    set $becue 1;
}
set $barbecue "$bar:$becue";
if ($barbecue = "1:0") {
    rewrite ^/(.*) https://www.example.com/login/;
}

但是,我想更新 URL rewrite,使其变为类似这样的形式:https://www.example.com/login?redirect_to=https://www.example.com/wp-content/uploads/private/super-secret-brochure.pdf

这样,一旦用户登录,WordPress 就会自动将用户重定向回他们尝试访问的文件。

但是,我该如何正确更新重写,以便它包含尝试访问的原始 URL?

它是否很简单:

rewrite ^/(.*) https://www.example.com/login?redirect_to=https://www.example.com$request_uri;

相关内容