음. 조금 개선의 여지가 있겠지만... ^^;;;

RewriteRule ^robots\.txt$ blog/plugin/index.php [E=SURI:1,L]

를 .htaccess에 추가하시구요,

http://isloco.com/~khlee/ways/BlockWebRobot.tar.gz

를 가져다가 쓰시면 될 것 같습니다.

<binding>
    <listener event="/robots.txt/">RobotsTXT</listener>
    <listener event="/robots.txt">RobotsTXT</listener>
  </binding>

와 같이 이벤트를 사용하고 있습니다.
(지금 보니 윗쪽의 listener는 빼도 될 것 같군요 lol)

안녕하세요. 포럼에는 처음으로 글을 쓰게 되네요 cool 잘 부탁드립니다.

다름아니라 주말에 플러그인을 좀 보다가 신기한 걸 발견해서 같은 고생하시는 분 있을까봐 적어봅니다.
예전에 제가 쓰는 다중블로그에 robots.txt를 달고 싶어서 고민을 하다가 선택적으로 달 수 있도록 플러그인을 만들었습니다.

내용은 대강..

<?
function RobotsTXT($target,$mother) {
        header('Content-Type: text/plain; charset=UTF-8');
        print("User-agent: *\r\n");
        print("Disallow: /\r\n");
}
?>

요렇게 무척 간단합니다 ^^; 이벤트는 블로그주소/plugin/XXX 와 같은 형태로 나오는 이벤트를 사용하고 있구요.
다만 요놈의 문제는 현재 태터 구조상 plugin이 http://블로그주소/robots.txt 주소를 받을 수 없기 때문에,
.htaccess의 RedirectRule을 고쳐야한다는 점이지요. 그래서 공개하기 민망하기도 하지만 여튼 조용히 저희만 쓰고 있습니다.

그런데 이게 잘 되는 줄만 알았는데, 어느날 IE로 저 페이지를 접근해보니 404 에러가 나는 것이었습니다 mad
알고보니 항상 404 에러가 나고 있었는데, FF는 404에러가 남에도 불구하고 robots.txt에 해당하는 내용을 보여줘서 제가 몰랐던 것이더군요.

한참을 고민한 끝에 찾아낸 이유는 바로 HTTP 헤더가 제대로 설정되지 않아서였습니다 hmm

현재 태터에서는 위와같이 /plugin/XXX 주소를 쓰는 플러그인의 경우 제대로 페이지를 처리했는지를 header_sent() 함수로 체크하더군요.
보통의 경우는 위와같이 내용을 찍어도 별 문제가 없는데, 위 경우는 내용이 너무 짧아서인지 플러그인의 처리가 다 끝나서도 헤더가 안보내진 것이었습니다.
그래서 태터에서는 플러그인이 실패한 줄 알고 404에러... sad

결국에는 header() 뒤에 flush() 넣어서 해결했습니다 --a
혹시 저같이 삽질하시는 분 있을까봐 몇 자 적어봤습니다. header()는 헤더를 클라이언트에 완전히 보내는 함수가 아니라는데 주의합시다~~ smile