2009-07-14 8 views
3

누군가 내 사이트의 한 디렉토리에 이미지를 핫 링크 할 때 리디렉션을 만들려고합니다. 다른 사람이 이미지를 핫 링크 한 경우 다른 디렉토리의 해당 이미지 (동일한 파일 이름)로 리디렉션하고 싶습니다.Apache .htaccess hotlinking 리디렉션

누군가가 핫 링크하는 경우 :

:

www.mydomaoin.com/PlayImages/Basic/Embedded/{ImageName.gif}

나는 그것이로 리디렉션 할 www.mydomaoin.com/PlayImages/Basic/Shared/{ImageName.gif}

생각들?

답변

8
RewriteEngine on 

#redirect image hotlinks 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/?.*$ [NC] 
RewriteCond %{REQUEST_URI} (.*)/Embedded/(.*jpg|.*gif|.*png)$ [NC] 
RewriteRule ^(.*)$ %{HTTP_HOST}/%1/Shared/%2 [R=302,L] 

레퍼러가 비어 있지 않은, 그리고 레퍼러가 자신의 도메인과 동일하지 않고, 요청이 JPG/GIF/PNG로 끝나는/임베디드 폴더에있는 리소스의 경우, 다음의 URL을 다시 작성 바꾸기/포함하기/공유하기

귀하의 필요에 맞게 [R=302]을 다른 code으로 변경할 수 있습니다.

+0

분명히 그 디렉토리의 이미지가 파일을 링크하지 않기 때문에 무언가를하고 있습니다. 끊어진 링크 (빨간색 X)가 나타납니다. 디버깅을 위해 파일로 출력하는 방법이 있습니까? – Shawn

+0

Apache 로그를보고 MyDomain.com/{filename.gis}/Shared/에 액세스하려고 시도하는 것으로 보입니다. – Shawn

+0

RewriteRule에서 사소한 오타가 있었지만 수정했습니다. 내 서버의 코드를 확인하십시오. –