0

私はデジタルガジェットメーカーのウェブサイトに取り組んでいます。製品画像は、何百ものブログやフォーラムからホットリンクされています。これが帯域幅の問題を引き起こしています。

.htaccess を使用して、ホットリンクされたすべての画像を低解像度バージョンに置き換えたい

ホットリンクされた画像パスが

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

リダイレクトしたい

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

ホットリンクされた画像のパスは異なります。つまり、任意のディレクトリのサブディレクトリからのものである可能性があります。

例えば

/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/

ディレクトリであり、それらの名前は高解像度バージョンと同じになります。

4

1 に答える 1

2

これを追加してみてください:

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^(.*?)example\.com(/.*)?$ [NC]
RewriteRule   ^images/products/.+/(.+).png$ images/low-res/$1.png  [L]

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^(.*?)example\.com(/.*)?$ [NC]
RewriteRule   ^images/products/.+/(.+).png$ images/low-res/$1.png  [L]

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^(.*?)example\.com(/.*)?$ [NC]
RewriteRule   ^downloads/brochures/.+/(.+).jpg$ images/low-res/$1.jpg  [L]

このルールは、リクエストがサイトからのものか、サード パーティから直接のものかを探します。そして、リクエストを書き換えます。

于 2012-12-31T11:25:46.347 に答える