.htaccess 는 각종 서버 설정을 사용자가, 디렉토리별로 할 수 있게 해 주는 놈이다.

가장 흔하게는 /article.php?num=13 같은 주소를 /article/13 같은 걸로 변경할 때 사용한다.

몇 번 겪은 사람도 있을 텐데, 내 블로그에 올려 둔 이미지를 누군가가 긁어 가고, 그 글이 인기를 끌고 하면서 내 블로그 트래픽이 왕창 발생하는 일이 있을 수 있다.

퍼가는 것에 대한 생각각

좀 확장한 이야기긴 한데, 콘텐츠를 참고하고 코드 일부를 긁거나 하는 건 상관이 없지만, 글 전체를 퍼가는 경우는 약간 속이 쓰린 게 사실이다. 나도 나름대로 시간을 들여서 쓴 거고, 가급적 사람들이 내 블로그에 와서 글을 보길 바란다. (가끔 있는 일이지만, 내용이 잘못돼 글이 갱신되는 경우도 있다.)

물론 사람들이 내용 전체를 긁어가는 건 이해가 간다. 자기 블로그에 퍼놓고 참고하려는 용도일 것이다. 대부분은 말이다. 글 내용을 긁어 간 다음 출처로 내 블로그 링크를 걸어 놓은 사람들이 대부분인데, 이런 사람들은 단순하고 선량한 의도로 했을 것이라는 것을 짐작할 수 있다. 그래도 나는 글을 퍼가기 보다는 링크를 걸기를 권한다. 글을 정성들여 쓰시는 도아님 같은 경우 아예 퍼가는 걸 금지하고 있으며, 특히 네이버 블로그로는 더더욱 그렇다.

나도 가끔 ‘내용이 너무 좋은데, 블로그가 나중에 사라져서 이 글을 못 보게 되면 어쩌나’ 하는 경우가 있다. 그럴 때면 나는 글 내용 전체를 저장한 다음 압축해서 첨부파일로 올린다. 글이 사라질 때를 대비해서 말이다;; 나도 이런 경우가 있으니 전문을 퍼가는 사람들에게 뭐라 할 처지는 아니다.

가끔 RSS 전체를 긁어 가서 카피 블로그를 만들고 광고를 다는 어이없는 일도 있다고 하지만 누가 내 블로그로 그러진 않을 거다. (참고 : RSS 전체공개, 예고된 악용 1. IDG, 도아)

하나 더. 네이버 블로그는, 대형 포탈치고는 좀 쪼잔해 보이기도 하는데, 역시 외부 블로그에서 이미지를 긁어갈 수 없게 해 뒀다. (긁기가 안 된다는 이야기가 아니다. mytory.net 에서 <src="http://blog.naver.com/image.jpg"> 따위 태그를 쓰면 이미지가 안 뜬다는 이야기다.) 물론, 대형 포탈인 만큼 엄청난 트래픽이 발생하는 건지도 모르겠지만 말이다. 근데 정말 그럴까? 궁금하다.

트래픽 초과를 막기기

여튼간에, 내용 긁어가는 건 이해할 수 있다손 치더라도, 이미지를 퍼가는 바람에 트래픽이 초과돼 블로그가 다운되는 경우는 막아야 한다.

그럴 경우 선택은 두 가지다. 구글 블로거, 티스토리, 네이버, 이글루스 같은 서비스형 블로그를 사용하는 방법이다. 트래픽이 거의 무제한으로 제공되기 때문에 걱정없이 할 수 있다.

하지만 설치형 블로그라면 사정이 다르다. 트래픽을 관리해 줘야 한다.

이럴 때 사용하라고 있는 게 바로 .htaccess 다. 대부분의 호스팅 서버는 apache를 사용할 것이므로 .htaccess를 사용할 수 있을 거다.

이미지가 업로드되는 곳에 .htaccess 파일을 만들고 내용을 쓰든, 내용을 써서 거기 업로드하든 하면 된다.

저 .htaccess 라는 파일을 처음 봤을 때 내가 한 생각은, ‘얼레 저게 제대로 된 파일명이야?’ 하는 것이었다. 맞다. 제대로 된 파일명이다. 우리가 윈도우만 사용해서 낯선 거다. 리눅스에서(아마 UNIX부터?) .으로 시작하는 파일은 숨김파일을 의미한다. 윈도우야 파일명.확장자 형태로 파일을 만들지만 리눅스는 약간 다른 것이다. 그래서 윈도우에서 .htaccess 라는 파일을 만들면 오류가 발생한다. 그럴 때는 editplus 같은 데서 다른 이름으로 저장을 선택하고 파일을 만들면 된다.

자, 파일의 내용은 아래와 같다.

php_flag register_globals on

SetEnvIf Referer "mytory\.co\.kr" link_allow
SetEnvIf Referer "www\.mytory\.co\.kr" link_allow
Order Deny,Allow
Deny from all
Allow from env=link_allow

SetEnvIf Referer mytory\.co\.kr go_in
SetEnvIf Referer www\.mytory\.co\.kr go_in
SetEnvIf Referer ^$ go_in
Order Deny,Allow
Allow from env=go_in
Deny from all

\.은 .을 문자 그대로 인지시키기 위해 쓴 것이다. 안 그러면 명령어 따위로 인지하기 때문이다.

또한, 보면 알 수 있겠지만, 위 코드에서 mytory\.co\.kr 같은, 블로그 주소가 있는 곳에 자기 블로그 주소를 써야 한다.

그러면 외부에서 내 이미지를 긁어가도 표시되지 않게 된다. 내 블로그에 있는 이미지는 모두 내 블로그에서만 봐야 한다.

구글 사진

사실 얼마 전부터 내 블로그의 모든 사진은 구글 사진 서비스를 이용하고 있다. 그래서 최근 글들은 긁어가면 이미지도 다 나올 거다. 하지만 예전 글의 경우에는 긁어도 이미지가 나오지 않을 거다.

구글 사진을 사용해서 이미지를 걸면 역시나 트래픽을 절약할 수 있다. 구글 사진은 데스크탑용 프로그램도 제공한다. 이 프로그램도 정말 좋다.

끝!

다른 방법도 있다

글을 다 써놓고 보니, 내가 예전에도 같은 내용의 글을 쓴 적이 있다는 것을 알게 됐다.

그런데 위에서 알려 준 방법과 다른 방법이다. 확장자를 통해 호출을 막는 방법이다. 내용은 ‘Apache 웹서버에서 이미지(사진) 무단링크 방지 방법’에 가면 볼 수 있다.