이미지 외부링크 방지 – .htaccess

이미지가 많은 서버 운영시 가장 문제되는게 바로 퍼가기로 인한 트래픽 증가입니다.

동영상의 경우 대부분 직접 서버에 올리지 않고 유투브 등을 이용해서 많이 사용합니다.

이미지는 직접 관리해야 하는 경우가 많습니다.

특히 팬사이트나 커뮤니티의 경우 방문객 감소와 트래픽 증가를 이유로 외부링크에 민감할 수밖에 없습니다.

또한 외부로 유출되선 안되는 이미지들이 존재하는 경우 더욱 위험합니다.

 

이에 대부분 XE/라이믹스 사용자 분들께서는 2가지의 방법을 이용합니다.

 

– 클라우드플레어(CloudFlare)를 이용한 간접적인 방법

– .htaccess 파일 수정을 통한 직접적인 방법

 

이중  .htaccess 를 이용한 방법을 사용하도록 하겠습니다.

XE(CMS)를 설치하시게 되면 기본적으로 .htaccess 파일이 생성됩니다.

 

기본적으로 XE 루트의 .htaccess 파일을 수정하여 사용하시는데 이 경우 업데이트 될 경우 초기화가 된다는 단점이 존재합니다.

(그래서 항상 백업해두고 업데이트 후에 덮어씌우는 방법을 사용하기도 합니다)

 

그래서 저의 경우 .htaccess 를 따로 생성하여 직접적인 경로에 두는 방법을 사용합니다.

기존 파일을 아래의 폴더에 복사한 후 수정을 합니다.

 

XE / file / attach / images

 

코드는 아래와 같습니다.

복사한 파일의 기존 내용을 전부 지우시고 아래의 코드만 넣어서 사용하셔야 합니다.

 


 

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http(s)?://([a-z0-9-]+\.)?내도메인\.주소/ [NC]

RewriteCond %{HTTP_REFERER} !^http(s)?://([a-z0-9-]+\.)?naver\.com/ [NC]

RewriteCond %{HTTP_REFERER} !^http(s)?://([a-z0-9-]+\.)?nate\.com/ [NC]

RewriteCond %{HTTP_REFERER} !^http(s)?://([a-z0-9-]+\.)?daum\.net/ [NC]

RewriteCond %{HTTP_REFERER} !^http(s)?://([a-z0-9-]+\.)?paran\.com/ [NC]

RewriteCond %{HTTP_REFERER} !^http(s)?://([a-z0-9-]+\.)?yahoo\.com/ [NC]

RewriteCond %{HTTP_REFERER} !^http(s)?://([a-z0-9-]+\.)?kakao\.com/ [NC]

RewriteCond %{HTTP_REFERER} !^http(s)?://([a-z0-9-]+\.)?facebook\.com/ [NC]

RewriteCond %{HTTP_REFERER} !^http(s)?://([a-z0-9-]+\.)?google\.co\.kr/ [NC]

RewriteCond %{HTTP_REFERER} !^http(s)?://([a-z0-9-]+\.)?google\.com/ [NC]

RewriteCond %{HTTP_REFERER} !^http(s)?://([a-z0-9-]+\.)?google\.([a-z]+|com?\.[a-z]+ )/ [NC]

RewriteRule \.(gif|jpg|jpeg|png|GIF|JPG|JPEG|PNG)$ – [NC,F,L]

 


 

차단하지 않을 도메인을 추가하시려면 아래의 코드를 RewriteRule 이전 줄에 추가해주시면 됩니다.

 

RewriteCond %{HTTP_REFERER} !^http(s)?://([a-z0-9-] \.)?도메인\.com/ [NC]

 

위의 코드에서 수정하실 부분은 2곳입니다.

만약 2차주소가 포함된 도메인인 경우 ([a-z0-9-]+\.) 대신 (blog\.) 등으로 넣어주시면 됩니다.

 

또한 외부에서 퍼갈때 나오는 이미지는

 

RewriteRule \.(gif|jpg|jpeg|png|GIF|JPG|JPEG|PNG)$  [NC,F,L]

 

위의 붉은 부분을 지우시고 이미지주소를 넣어주시면 됩니다.

 

테스트는 브라우져 캐시를 지우시고 테스트해보시거나 다른 브라우져를 사용하셔서 확인하셔야 합니다.

댓글 남기기