2012-12-17 2 views
0

저는 Digital Gadgets Manufacturer의 웹 사이트에서 일하고 있습니다. 제품 이미지는 수많은 블로그 & 포럼에서 핫 링크됩니다. 이로 인해 대역폭 문제가 발생합니다.핫 링크 된 이미지를 저해상도 버전으로 바꾸기

우리는 hotlinked 이미지 경로는 우리가

http://www.example.com/images/low-res/gadget123.png 
로 리디렉션 할

http://www.example.com/products/gadget123/gadget123.png 

경우 이 htaccess로

의미하여, 낮은 해상도 버전으로 모든 hotlinked 이미지를 교체하려면

핫 링크 된 이미지 경로가 다르다는 것은 해당 디렉토리가 하위 디렉토리에있을 수 있음을 의미합니다.

예를

/images/products/abc/gadget_abc200.jpg 
/products/images/abc/gadgetabc5155_packing.png 
/downloads/brochures/abc2012/abc2012_user_guide.jpg 

etc... 

에 대한

하지만 모든 저해상도 이미지는

http://www.example.com/images/low-res/ 

디렉토리에있을 것입니다, 그들의 이름은 자신의 고해상도 버전과 동일합니다.

답변

0

원본 폴더와 관계없이 파일 이름이 고해상도와 저해상도 이미지 사이에서 항상 동일하다고 가정합니다.

RewriteEngine on 
RewriteBase/

RewriteCond expr "! %{HTTP_REFERER} -strmatch '*://%{HTTP_HOST}/*'" 
RewriteRule ^(images|products|downloads)/[a-zA-z0-9]+/([a-zA-z0-9]+)(\.jpg|\.png|\.gif)$ images/low-res/$2$3 

이것은 제공된 예제에서 작동합니다. 고려해야 할 추가 하위 폴더가있는 경우 규칙을 적절히 적용해야합니다.

+0

이 코드는 작동하지 않습니다. ( –

+0

이걸 시도하면 어떻게 되나요? – Wige

+0

아무 일도 일어나지 않았지만 여전히 원본 이미지를 보여줍니다. –

관련 문제