2009-07-14 15 views
3

サイトの1つのディレクトリに画像をホットリンクするときにリダイレクトを作成しようとしています。誰かが画像をホットリンクした場合、それらを別のディレクトリにある対応する画像(同じファイル名)にリダイレクトします。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にマイナーなタイプミスがあってそれを修正しました。私のサーバー上のコードを確認してください。 –