2013-01-24 1 views
0

WP 블로거 설치시 아무데도 들어오지 않는 (즉, 다른 사이트가 아닌) 사람을 감지하는 리디렉션을 설정하려고합니다. 아이디어는 주석/게시물을 생성하기 위해 시스템에 사전 구성된 URL을 연결하는 스팸봇 중 일부를 잡는 것입니다. 리퍼러 사이트가 없다면 홈페이지 (www.domain.com/index.php 또는 www.domain.com)로 다시 가져올 수 있습니다. 그러면 봇과 어지럽게 될 것입니다. 그러나 실제 사람들은 그렇지 않습니다. ..htaccess HTTP_REFERER에 기반한 리디렉션이 비어 있습니다.

리퍼러는 위조 될 수 있지만 잘하면 적어도 바보를 막을 것이라고 알고 있습니다.

나는 .htaccess 재 작성 규칙 (나는 멍청한 것에 대해 사과한다.)에 대한 단서가 거의 없지만 몇 가지 검색에도 불구하고 기존 답변이나 다른 곳에서는이 일을 찾지 못했다. 아무도 그것을 해본 적이 없거나 정확하게 말을하지 못합니다.

도움을 주시면 감사하겠습니다. :)

답변

1

나는 이것을 반대합니다. 이렇게하면 사용자의 잠재적 인 부분을 괴롭 히거나 소외시킬 수 있습니다. 예를 들어 브라우저에서 리퍼러 정보를보고하지 않도록 설정하고 익명 성 네트워크를 사용하는 등의 설정이 가능합니다. 보고 된 사용자 에이전트 문자열 (here 참조)을 일치시켜 잡을 수있는 덤프 봇.

그렇지 않으면 그것은 간단하십시오한다 RewriteCond에서 HTTP_REFERER 환경 변수에 대한 일치 : 리퍼러가 빈 문자열 인 경우

RewriteCond %{HTTP_REFERER} ^$ 
RewriteRule .* http://example.com/ 

한다 RewriteCond 여부를 확인하기 위해; RewriteRule은 모든 것을 http://example.com/ 루트로 리디렉션합니다. 이것은 하드 리디렉션입니다. 즉 서버가 R = 301 moved permanently 헤더를 발행합니다. 다른 리소스를 몰래 사용하려는 경우 RewriteRule .* index.php과 같은 상대 URL을 지정하여 소프트 리디렉션을 사용하십시오. 그러나 리퍼러 정보를보고하지 않는 사람들에게는 "이 페이지를 읽으려면 리퍼러보고를 활성화해야합니다"와 같은 페이지로 리다이렉트 할 수 있습니다.

그런 것들에 대한 더 많은 예제는 the manual을 참조하십시오. 거기에는 매우 유사한 예방 hotlinking 방법이 있습니다.

+0

감사합니다. 나는 단순한 버전을하기 위해 유혹을 받는다. 그것은 순전히 홈페이지로의 리다이렉트이기 때문이다. 그것은 정말로 나쁘고, 성가 시거나, 그렇지 않으면 grrr-inducing하는 곳 어디에도 그것들을 전송하지 않는다. 나는 그 무서운 봇 코드를 북마크했다. 나는 그것을 먼저 시도해보고 멈추는 지 볼 수있다. 그렇지 않으면 다른 것을 해보 라. 다시 한 번 유익하고 유용한 답변을 주셔서 감사합니다. 굉장해! 편집 : 무한 루프 가능성을 발견했습니다 (사이트에서도 브라우저에서 리디렉션이보고되지 않음). 바. 시간이 여분의 페이지에 대한 제안, 감사합니다! –

관련 문제