2009-07-14 20 views
3

Я пытаюсь создать перенаправление, когда кто-то обращается к изображениям в одном каталоге на моем сайте. Если кто-то ссылается на изображение, я хочу перенаправить их на соответствующее изображение (то же имя файла) в другой каталог.Apache .htaccess hotlinking redirect

Если кто-то Hotlinks:

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] 

Если реферер не является пустым, и реферер не равен вашей собственной области, а запрос для ресурса в/Embedded папки, заканчивающейся в JPG/GIF/PNG, а затем переписать URL для заменить/Вставить в/Общий

Возможно, вы захотите изменить [R=302] на другой code в соответствии с вашими потребностями.

+0

Очевидно, что что-то делает, так как изображения из этого каталога не связывают файл, я получаю неработающую ссылку (красный X). Есть ли способ вывода в файл для отладки? – Shawn

+0

Я просмотрел журналы Apache, и кажется, что он пытается получить доступ к MyDomain.com/{filename.gis}/Shared/ – Shawn

+0

Если у вас есть небольшая опечатка в RewriteRule, исправьте ее. Теперь проверить код на моем сервере. –