2013-10-27 2 views
3

나는 서버에 거의 20 페이지가 있지만 사용자가 볼 수있는 abc.php라는 파일 만 필요합니다. 사용자가 강제로 //example.com/some.php와 같은 다른 파일을 열면 htaccess가 403 오류를 표시합니다.특정 파일 만 볼 수 있도록 허용 .htaccess

<Files ~ "^(?!(changepwd|login|register|remind|securitycode|registersuggest)\.php$).*(\.php)$"> 
AuthName "Reserved Area" 
AuthType Basic 
AuthUserFile path_to/.htpasswd 
AuthGroupFile path_to/.htgroup 
Order Deny,allow 
Require group allowed_groups 
</Files> 

이것은 현재 내가 사용하고있는 방식이지만,보다 세련된 해결책이 될 수 있다고 생각합니다.

답변

11

.htaccess- 파일은 index.php 만 열 수 있습니다. 다른 파일에 액세스하려고하면 403 오류가 발생합니다.

Order deny,allow 
Deny from all 

<Files "index.php"> 
    Allow from all 
</Files> 

일부 파일에도 인증을 사용하려는 경우 예제의 끝에 현재 파일의 내용을 추가하기 만하면됩니다.

+1

또한 index.php에 포함 된 모든 js, css 파일을 볼 수도 있습니다. –

+1

' 같은 것을 추가하십시오. 모두 허용' – Atle

+2

허용하는 방법 1 개 이상의 파일? index.php와 register.php를 좋아하세요? ' 모두 허용. ' –

1

사용자가 웹 서버의 루트 디렉토리에없는 디렉토리에 액세스하는 것을 원하지 않는 파일을 이동하는 것이 가장 안전합니다.

처럼 내 사이트의 루트 디렉토리는이 경우 :

/var/www/html/my_web_site/public/index.php 

나는이 같은 다른 디렉토리에 비공개 파일을 넣을 수 있습니다 :

/var/www/html/my_web_site/config.php 
/var/www/html/my_web_site/auth.php 
/var/www/html/my_web_site/db.php 

그리고이 같은 파일을 포함 index.php :

include("../config.php"); 
include("../auth.php"); 
include("../db.php"); 

위도로 사용자가 실수로 삭제할 위험이 없습니다. 또는 .htaccess 파일을 복사하는 것을 잊지 마십시오.

+3

아니요, 저는 이것을 원하지 않습니다. 내가 10 PHP 파일이 서로 독립적이라고 가정 해 봅시다. 내 클라이언트가 abc.php 만 열어서 모든 PHP 파일이 연결시 금지 된 오류를 보여주기를 바란다. –

+0

로그인을 원하십니까? 아니면 403 오류로 충분합니까? – Atle

관련 문제