우선 외부링크를 막기 위해서는 디렉토리에 .htaccess 파일을 만든뒤 아래와 같이 세팅..
물론 < FileMatch 을 붙여서 써줘야함.
SetEnvIFNoCase Referer "http://YOUR_DOMAIN1" pass
SetEnvIFNoCase Referer "http://YOUR_DOMAIN2" pass
< FilesMatch "\.(gif|jpg|jpeg|png|bmp|zip|tar|gz|rar|txt|iso|GIF|JPG|JPEG|PNG|BMP|ZIP|
TAR|GZ|RAR|TXT|ISO|mp3|MP3|wmv|WMV|sws|SWF|exe|EXE)$">
Order deny,allow
deny from all
allow from env=pass
#allow from all
< /FilesMatch>
#400 - Bad request
#401 - Authorization Required
#403 - Forbidden
#404 - Wrong page
#500 - Internal Server Error
ErrorDocument 403 /forbidden_error.php
위와 같이 해두면 jpg 혹은 zip 파일등이 외부 링크가 걸렸을 경우 외부 사이트에서 표시가 되지 않습니다.
또한
http://YOUR_DOMAIN1/data/test.jpg 같은 주소창에서 다이렉트 접속시 forbidden_error.php로 연결이 되게 됩니다.
여기서 forbidden_error.php에서 로그인 하도록 정의.
그뒤 링크나 바로 넘겨서 다운받을 수 있도록 코딩 해두면 됩니다.
(자세한 설명은 항상 생략합니다; )
저같은 경우 자료실의 암호를 2가지로 지정
1번의 경우 정상적으로 자료실을 이용할 수 있도록 정의
2번의 경우 다운로드 링크용으로 사용.
2번 설명
다이렉트 접속 -> forbidden_error.php -> 로그인하도록 정의 후 $_SERVER['REQUEST_URI']; 등으로 환경 변수 넘김 -> 로그인이 되었다면 링크 하여 다운로드 가능하도록함.+ 세션 지우기 -> 로그인 실패시 아무것도 출력되지 않도록함
그냥 오늘 코딩 하면서 생각 정의용으로 작성해봄.