2012-04-30 12 views
0

アップロードされたファイルのフォルダがあり、その中にサブディレクトリがあり、ファイルが呼び出されるたびにユーザーのアクセス許可を確認する必要があります。 .htaccessはURLを維持しながらuploaded_filesディレクトリ内のindex.phpファイルを呼び出し、index.phpがデータベースに対してファイルをチェックできるようにして、ログインしているユーザがファイルにアクセス権を持っているかどうかを確認します。 index.phpはファイルを提供し、ユーザは許可チェックを知らないでしょう。.htaccess index.phpスクリプトを使用したサブディレクトリ

私は実際には、アップロードされたファイルのディレクトリ自体に私の.htaccessに次のコードを使用して、私の開発サーバー上でこの作品を作った

RewriteEngine on 
RewriteRule ^protected($|/) - [F] 

ErrorDocument 404 /uploaded_files/index.php 
ErrorDocument 403 /uploaded_files/index.php 
ErrorDocument 405 /uploaded_files/index.php 

が、ライブサーバー上で、何かがtheese PHPのヘッダがあることを引き起こしているしています無視:

header('Content-Type: some/mime'); 

および/または

header('Content-Disposition: attachment; filename="somefile.txt"'); 

私は思いますそれはRewriteRuleの強制的な403かもしれませんが、私はURLが変更されず、index.phpが$ _SERVER ['REQUEST_URI']を得ることができるようにそれを使用しています

私はまた、 .php

+0

保護されたファイルをweb-rootから移動し、すべてを 'index.php'に書き直して、PHPスクリプトでエラー処理を行うのはなぜですか? – jeroen

+0

再利用可能な小さなCMSで、常にWebルートから離れるわけではありません。それで、私は、管理者経由でuploaded_filesフォルダ内のファイルを管理する既存のシステムを改造しようとしています。 –

答えて

0

これは動作するようです。 /uploaded_files.index.phpへのリダイレクトと($ | /)保護
のRewriteRule ^上のL代わりにF [403]フラグののRewriteRuleの[最終]フラグ

RewriteEngine - [F]
するRewriteRule ^保護($ | /)/upload_files/index.php [L]


のErrorDocument 404 /uploaded_files/index.php
のErrorDocument 403 /uploaded_files/index.php
のErrorDocument 405/uploaded_files /インデックス.php

関連する問題