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

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

これは、少なくとも提供された例では機能します。考慮する必要がある追加のサブフォルダーがある場合は、それに応じてルールを調整する必要があります。

于 2012-12-17T13:37:37.177 に答える