2010-11-19 18 views
2

Apacheのファイルへのアクセスを制限したいと思います。 制限付きファイルのリストは可変である必要があります。 ファイルアクセスが制限されていて、特定のCookieが見つからない場合、ユーザー はウェブサイトにリダイレクトされます(Cookieを取得する可能性があります)。見つかった場合、ファイルはロードされます。mod_rewriteによるファイルアクセス制御

私はmod_rewriteでこの問題を解決したいと思います。

私はすべてのリクエストをhandler.phpスクリプトにリダイレクトすることを考えています。

この "handler.php"はリクエストを探して、アクセスが許可されているかどうかを判断します。ここまで問題はない。

問題が解決しました。アクセスが許可されていれば、ファイルをロードする必要があります。したがって、私はパントマイムを知らない、ファイルサイズなど

クーゼのうち、私は

if ($ext == '.jpg') header('Content-Type: ...'); 

ような何かを書くことができしかし、私はすべての可能なファイルを(処理したいので、私は、このソリューションを使用する必要はありませんpng、gif、exe、mp3、zip、ETC)。問題は、すべてのMIMEタイプを知ることができないことです。

Apache(サブリクエスト内)を呼び出して(この時点ではhandler.phpなしで)ファイルを読み込むことができたら大丈夫です。

私の場合、mod_authのような厳密な方法でリソースを保護したくないのです。成熟したコンテンツ(血液が入っていて、子供にとってはうまくいきません)に免責事項を追加したいからです。クッキーが見つからない場合は、免責事項を表示したいと思います。クッキーがある場合は、その画像を表示することができます。

答えて

1

特定のパスのすべてのリソースへのアクセスをブロックすることを考慮して、おそらくApache authorizationがあなたのためにより良い方法です。これは、すべてのリソース要求でセッションを手動でチェックするよりもはるかにクリーンな解決策であり、記述しているコンテンツタイプの処理の問題にぶつからないでしょう。改訂

:その場合は

は、私はあなたがworking with cookies and .htaccesに見てください。

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_COOKIE} !CookieName= [NC] 
RewriteRule .* http://www.example.com/members/login.php [L] 
+0

ありがとうございます。シンプルな ".htpasswd"テクニックを意味しますか?もちろん、それは非常に安全です。しかし、私の場合は、成熟したコンテンツ(血液を含んでいて子供には似合わないアートワークを描いたもの)に免責を加えたいだけなので、リソースを厳重に保護したくありません。クッキーが見つからない場合は、免責事項を表示したいと思います。クッキーがある場合は、その画像を表示することができます。 –

+0

@Daniel改訂された投稿を確認してください – BBonifield

+0

Hello BBonifield。その解決に感謝します。免責事項を表示し、cookieを設定してページをリロードする.htaccessとexample.phpスクリプトを試してみました。今回は実際のファイルがロードされます。 –