2011-08-16 9 views
1

Apache에서 사용자 정의 양식으로 디렉토리를 보호 할 수 있습니까? 정적 HTML 파일로 가득 찬 디렉토리가 있고 기본적으로 전체 정적 사이트입니다. 이 사이트를 암호로 보호하고 싶습니다.Apache에서 사용자 정의 양식으로 디렉토리를 보호 할 수 있습니까?

.htaccess를 사용할 수는 있지만 사이트 보안을 위해 사용자 지정 양식/데이터베이스를 가지고 있다고 생각합니다. 나는 PHP로 폼, 데이터베이스를 만들고 인증을하는 방법을 잘 알고있다. 내가 모르는 것은 사용자가 인증되지 않은 경우 Apache가 해당 양식으로 리다이렉트하도록 지시하는 방법입니다.

업데이트 : 다른 인증 모듈을 사용해도 문제가 없습니다. 나는 IIS Forms 인증과 유사한 시스템을 찾고있다. 사용자가 로그인하지 않은 경우 디렉토리의 파일을 방문하면 로그인 양식으로 리디렉션됩니다. 로그인하면 디렉토리의 파일을 볼 수 있습니다.

+0

는 예, PHP로 인증을 수행/파이썬/어떤 언어 스크립트를이 디렉토리에 대한 모든 요청을 다시 작성 . 이 스크립트는 사용자에게 액세스가 허용 된 경우 요청한 파일의 내용을 인쇄하고 그렇지 않으면 로그인 양식을 표시합니다. 아파치는 인증에 대해 아무 것도 모른다. 단지 모든 요청을 다시 작성한다. –

+0

@DanGrossman - Apache는 .htaccess가 작동하도록 인증 및 세션에 대해 알고 있어야합니다. – Justin808

+0

아니, 왜 그렇게 말 하겠니? HTTP 기본 인증은 완전히 상태 비 저장이며 서버에는 세션이 없습니다. –

답변

1

의사 코드는 다음과 같습니다

if user authenticated: 
    read a file and output into browser (or return 404) 
else: 
    show the form 
end 

index.php.html 파일에 대한 모든 요청을 다시 작성합니다 .htaccess을 다음

RewriteEngine on 
RewriteCond %{REQUEST_URI} \.html$ 
RewriteRule \.html$ /index.php [QSA,L] 

당신은 $_SERVER['REDIRECT_URL']에 요청 .html 파일 이름을 찾을 수 있습니다.

는 (알려진 PHP 프레임 워크의 대부분이 식물 또는 유사한 접근 방식을 사용합니다. 공상 아무것도이 아닌 있습니다.)

관련 문제