フロントエンドWeb開発者はこちら。事前に申し訳ありません。
私の会社は、 WP Engine によって提供されるNginxを実行しているWebサーバーにソフトウェアの新しいビルドを保存したいと考えています。
これらのビルドのファイルパスはcompany.com/downloads/file.Zip
になります。 お客様のログインゲートの背後にある特定の参照URLからのファイルでない限り、このフォルダー内のファイルへのアクセスを制限したいと思います。
/downloads/
内のファイルへのリンクをクリックすると、ユーザーはファイルを取得します画像のホットリンクを防ぐためのリソース(.Zipファイルを処理します)を見つけました。これは私にとってはうまくいくかもしれませんが、この言語の構文についてのヘルプが必要です。おそらくそれはたくさん間違っています。
location ~ /downloads/$ {
valid_referers none blocked ~.allowed_domain.com;
if ($invalid_referer) {
return 404;
}
}
WPエンジンではNginxコードを自分で追加することはできないため、実装するコードを送信する必要があります。誰かがこれを行う方法を知っていて、私を助けることができるなら、私はそれを本当に感謝します!
他の可能性は X-Accel ヘッダーを使用することです。私はあなたのユースケースを知らないので、それは適切ではないかもしれません。
X-Accelはnginx固有のヘッダーです。 PHPスクリプト-header("X-Accel-Redirect: /private-downloads/magic.iso")
のように)でそのヘッダーを発行できます。nginxがこのヘッダーを認識すると、magic.iso
にあるファイル/data/private-downloads
のコンテンツをサーバーします。
したがって、あなたのタスクは、認証をチェックし、X-Accelヘッダーで応答するか、ログイン画面にリダイレクトするdownload.php
を準備することです。
Nginx.confでの/private-downloads/
の定義
location /private-downloads/ {
internal; # this
alias /data/private-downloads;
# this should be located outside of HTTP server root
}
詳細については、serverfaultでx-accelの質問を確認してください。 1
valid_referers
nginxディレクティブを使用できます。 ( nginx doc )
location /downloads/ {
alias /var/www/downloads;
valid_referers www.example.me ;
if ($invalid_referer) {
return 404;
}
}
X-Accelヘッダー を使用することを好むため、私は個人的にこれを本番環境で試したことはありません。 PHPスクリプトでユーザーを確認してから、nginxヘッダーX-accelを送信できます。ヘッダーはnginxに静的ファイルをnginxでサーバーするように要求します。