2017-04-02 3 views
0

パスとファイル名を含め、すべてのイメージをPHPファイルにリダイレクトする必要があります。Apache 2.4 - イメージをPHPファイルにリダイレクトするには?

想像して自分のドメインがexample.comである 私はhttps://example.com/art/logo.pngを持っているので、私は画像を表示するのphpファイルにリダイレクトされるすべての要求を強制するhttps://example.com/scripts/image_loader.php?a:art&b=logo.png

にこれをリダイレクトしたいと思うかもしれません。私は誰が画像にアクセスできるかを制御するため、またホットリンクを防ぐためにこれをやっています。 また、このリダイレクトを使用し、画像を表示するためにphpファイルを使用するhtmlファイルが必要です。含まれている 'img src =/art/logo.png'

私は既に参照ヘッダーメソッドを使用してmod_rewriteを実行しましたが、動作していません。私は、httpsプロトコルがヘッダー内のリファラーを使用しないと仮定しています。

私は自分の画像をホットリンクしたり、ファイルとしてダウンロードしたりするのを止めることができます。 ユーザーが人物、ボット、または何らかの種類のサイトリッパーであるかどうかを判断できますか?

私は画像をダウンロードする人を止めることはできません。私はちょうどそれらのためにそれをより困難にしたいです。だから、彼らはただ簡単にそれらをダウンロードしたり、サイトリッパーソフトウェアを使用することはできません。

どのような提案も素晴らしいでしょう。私のウェブサイトはHTTPSを使用します。オンラインでのホットリンクのソリューションの多くは、httpを使用した例を示しています。

答えて

0

1.リクエストは、ユーザーまたはボットからのものであると判断できますか?

NYeah、多かれ少なかれ^^ UserAgent-Headerフィールドを使用して、要求がブラウザ経由で送信されたかどうかを判断できます。しかし、問題は、HTTrackのようなサイトリッパーをすべてブラックリストに載せたいのですか、一般的なブラウザをすべてホワイトリストに入れたいのですか?どちらも不完全でかなり長いリストになります。呼ばれるURIパターンは、あなたの指定した「/path/image.pngを以下の場合、これは、標準画像のためのすべての要求を書き換えどのようにあなたのphpファイルへのすべての画像を書き換えるために

RewriteEngine On 
RedirectRule ^/(.+/(.+\.(jpe?g|gif|png|tif|bmp))$ /scripts/image_loader.php?a:$1&b=$2 

2 '/scripts/image_loader.php?a:pathする& B = image.png

更新

RedirectRule ^^/(.+/)+(.+\.(jpe?g|gif|png|tif|bmp))$ /scripts/image_loader.php?a:$1&b=$2 

最初の括弧(.+)には、最後のファイル名までのサーバー名の後の部分が含まれているため、/path/example/image.pngの例では、path/exampleが含まれます。 2番目の括弧(.+)にはファイル名のみが含まれているので、例では/path/example/image.pngにはimage.pngが含まれます。今、両方の値がターゲットURLに割り当てられている - >

/scripts/image_loader.php?a:path/example&b=image.png 

がうまくいけば、私は右のあなたの質問を持って...

+0

あなたはすでにその提案を試してみましたか?あなたが私の '編集'を受け入れたことを見て、あなたがそれをテストしたと思った;) –

+0

まだ試したことはありませんが、$ 1&b = $ 2の部分については質問があります。それに?私は画像のディレクトリとファイル名をつかむ必要があります。それをPHPファイルに渡す。この例の芸術はサイト内のフォルダであり、logo.pngはファイルです。私は2つの変数は、ルートフォルダの後にフォルダのパスを取得するphpファイルを持っているし、2番目のvarはファイル名です。 – user520108

+0

は私の更新で簡単な説明を追加しました –

関連する問題