ホスティングプロバイダーと協力して、特定のフォルダ内のファイルへのアクセスをブロックするためのnginxルールを追加しました。基本的に、ユーザーがWordPressサイトにログインしている場合は、ファイルへのアクセスを許可します。そうでない場合は、ログインURLにリダイレクトされます。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/;
}
rewrite
ただし、 URL を次のように更新したいと思います。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;