2013-08-09 6 views
0

방문자가 .htaccess (Apache)를 통해 특정 Referers의 방문자 인 경우 차단하려고합니다.표시된 도메인에서 참조 된 방문자 차단하기

이 코드를 발견하고 웹에서 여러 장소를 변형,하지만 대신 상대 추천 도메인의 모든 트래픽을 차단하는 것 같다

:

# block visitors referred from indicated domains 
<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteCond %{HTTP_REFERER} sweetfreestuff.com [NC,OR] 
RewriteCond %{HTTP_REFERER} wormhole.com [NC,OR] 
RewriteRule .* - [F] 
</ifModule> 

은 또한 변화없이,이 변화를 시도했다

# block visitors referred from indicated domains 
<IfModule mod_rewrite.c> 
Options +FollowSymlinks 
RewriteEngine on 
RewriteCond %{HTTP_REFERER} sweetfreestuff\.com [NC,OR] 
RewriteCond %{HTTP_REFERER} wormhole\.com [NC,OR] 
RewriteRule .* - [F] 
</ifModule> 
+0

.com 전에 백 슬래시가 필요하지 않습니까? (http://www.javascriptkit.com/howto/htaccess14.shtml) 나는 그것 없이는 한번도 시도한 적이없는 것 같아요 ... 그리고 옵션 # FollowSymlinks 전에 RewriteCond? – lostphilosopher

+0

나는 슬래시의 유무에 관계없이 시도했다. – Keefer

+0

흠, 500 오류가 발생하는 경우 댓글 달기 + FollowSyslinks를 사용해보세요. 그리고 lostphilosopher

답변

1

다른 경로를 찾으려면 .. 여전히 .htaccess이지만 리퍼러의 테스트와 리퍼러의 테스트를 구분하는 다른 구문.

# Deny access to all with status "banned" 
SetEnvIfNoCase Referer "^http://([a-z0-9\-]+\.)?sweetfreestuff\.com.*$" banned 

# Enable Rewrite mode 
Options +FollowSymlinks 
RewriteEngine On 

# 301-Redirect to themselves 
RewriteCond %{ENV:banned} ^1$ 
RewriteCond %{HTTP_REFERER} ^(.*)$ 

# In any case => 403-Forbidden Page 
Order Deny,Allow 
Deny from env=banned 
+0

흥미 롭다, 기쁘다 당신을 위해 작동했다! – lostphilosopher