2012-03-23 3 views
1

私は、サーバルート外のフォルダに保存されている画像(この場合はPDFファイル)にユーザがアクセスする可能性がある問題に対する解決策を探しています。通常、私のアプリケーションはPHPスクリプトとセッションを通してユーザーを検証します。今起こっていないことは、ログインしていないユーザーが潜在的にPDFにアクセスするのを防ぐことです。mod_rewriteで現在のPHPセッションを確認して直接アクセスから画像を保護する

私が探している解決策は(私は思うが)Apacheに縛られる必要があります。 RewriteMap & RewriteRuleを使って興味深い解決策を見ましたが、この例ではPDFディレクトリの.htaccessファイルに入れていました。 Apacheでこれを行うことはできません(エラー:ここではRewriteMapは許可されていません)。私は、書き直しの指示がアクセスできる私のhttpd.confに入る必要があると信じています。

ので( 'ここでは使用できませんRewriteMap命令' になった)私が見つけた例はここにある: RewriteMap命令認証PRGで RewriteEngine:auth.php のRewriteRule $ {AUTH:$ 1}(*。)

auth.phpはPHPセッションをチェックし、必要に応じてログインスクリプトにリダイレクトします。

私はこれを私のhttpd.confに置かなければならないことを読んでいます。 RewriteMapを特定のディレクトリ(サブディレクトリを含む)でのみ実行するように指定する方法を教えてください。

+0

、すべての要求をブートストラップ・ファイルにリダイレクトして、要求されたファイルまたはデフォルト・ファイルをロードすることができます。 – Moses

+0

@Moses - それは私が多かれ少なかれここに行くものです。私は質問を投稿してからApacheの設定を調べる/テストする時間がなかったので、トラフィックを正しくリダイレ​​クトする方法についてはまだまだ固執しています。 –

答えて

0

最初に、必ずhttpd.confに直接入力する必要があります。 Debianシステムでは、例えば、あなたがそうバーチャルホストによって1ファイル(バーチャルホストは通常​​のウェブサイトである) を持って、あなたはこのような「ディレクトリ」であなたのRewriteMap命令を配置する必要があります:MVCパターンからの借入

<Directory /full/path/to/your/pdfs> 
    RewriteEngine on 
    ... 
</Directory> 
関連する問題