0 レビュー
1 回答
php-サブフォルダー内のファイルへの直接アクセスをスクリプトにリダイレクトします
ユーザーがアップロードしたファイルを保持するサブフォルダーがあります。このフォルダーへのすべての直接ファイル要求を別の.phpスクリプトにリダイレクトしたいので、ファイルを送信/表示する前に、ユーザーがログインしているかどうかを確認できます。 例:
/mainsite/uploads/user/2324/file.pdf
転送する必要があります
/mainsite/uploads/permissions.php
しかし、permissions.php内で実行できるようにする必要があります:
$url = $_SERVER['REQUEST_URI'];
そして最初のリクエストが何であったかを確認します...すべての「チェック」の後にファイルをreadfile()するために。
これを試しました:
RewriteEngine On
RewriteRule ^/uploads/user/?$ /uploads/permissions.php [R=301,L]
しかし、これは単なる転送です...ユーザーがどのファイルまたはフォルダを要求したのかわかりませんでした。
「user/{userid}」の下に作成されたすべてのフォルダー内に個別のhtaccessファイルを作成することでこれを実行できることはわかっていますが、より単純な関数が必要でした。 1つだけでこれを実行できるのであれば、10000のhtaccessファイルは必要ありません。
ありがとう
わからない
0
レビュー
答え :
解決策:
次の構文を試してください:(私のバージョンでは必要なかったR = 301の部分を追加したので、完全にはテストされておらず、Rオプションなしで動作します)
RewriteRule "^/uploads/user/(.+)$" "/uploads/permissions.php?file=$1" [R=301,QSA,L]
permissions.php
の$_GET配列でfile
変数を取得できます。ただし、この値は安全でない可能性があるため、直接使用することはお勧めしません。最善の方法は、固定値のみを許可することです。たとえば、 switch
は、以前に変数を文字列としてフィルタリングしたことがあります。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。