2012-04-30 4 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']를 얻을 수 있도록 사용하고 있습니다

또한 색인을 통해 404s를 필터링하고 있습니다. .php

+0

보호 된 파일을 웹 루트에서 옮기고 모든 것을'index.php'로 다시 작성하고 PHP 스크립트에서 오류 처리를 수행하는 것은 어떨까요? – jeroen

+0

웹 루트를 벗어날 수없는 작은 재사용 CMS입니다. 즉, 관리자를 통해 uploaded_files 폴더의 파일을 관리하는 기존 시스템을 변경하려고합니다. –

답변

0

이것은 작동하는 것 같습니다. 리디렉션은 /uploaded_files.index.php하고
RewriteRule의 대신에 F [403] 플래그

한다 RewriteEngine의 RewriteRule의에 L [마지막] 플래그 보호^($/|) - [F]를
RewriteRule의 보호^($/|) /upload_files/index.php [L]


에서 ErrorDocument 404 /uploaded_files/index.php
에서 ErrorDocument 403 /uploaded_files/index.php
ErrorDocument를 405/uploaded_files/인덱스 .php

관련 문제