< img>をポイントしますPHPによって動的に生成された画像にタグ付けしますか?

StackOverflow https://stackoverflow.com/questions/806599

  •  03-07-2019
  •  | 
  •  

質問

画像を動的に生成された画像にリダイレクトすることは可能ですか(PHPを使用)?

動的に作成された画像があり、拡張子が「.PHP」です。 (明らかに)そしてそのサーバーは私の制御下にありません。だから" somename.jpg"をリダイレクトしたい(私のサーバー上で)" remoteserver / dynamicimage.php" (自分の制御下にないリモートサーバー上)をすぐに< img src =" somename.jpg" /> としてリンクすると、動的に生成された画像が表示されます。

これが可能かどうか教えてください。

役に立ちましたか?

解決

ブラウザは画像のリダイレクトに従います。 " somename.jpg"というphpファイルを作成します追加:

<?php
header('Location: http://www.otherserver.com/image.php');

.htaccessでApacheディレクティブ ForceType を使用します。 .jpgファイルをphpとして処理するようサーバーに指示するファイル:

<Files somename.jpg>
    ForceType application/x-httpd-php
</Files>

または.jpg拡張子が本当に必要ない場合は、ファイルsomename.phpを呼び出します。

mod_alias を使用して、おそらくこれを実現できます。 、まだ試していませんが:

Redirect somename.jpg http://www.otherserver.com/image.php

これは.htaccessファイルにも含まれます。

他のヒント

ヘッダー関数はHTTPヘッダーを制御します。これは、ブラウザーがファイルタイプを決定するために使用するものです(または、いずれの場合もそうする必要があります)。 、HTMLスクリプト出力ではなく:

header('Content-type: image/jpeg');
header('Content-Disposition: attachment; filename="somename.jpg"');

.htaccessファイルにこのようなものを追加してみてください

RewriteEngine on
RewriteRule ^(.*)\.jpg$ /scripts/$1.php

可能ですが、HTTPリダイレクトが発生します:

RewriteEngine on
RewriteRule ^somename\.jpg$ http://remoteserver/dynamicimage.php [L]

代替手段は、プロキシを使用することです(< href = "http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule" rel = "nofollow noreferrer"> P フラグ)、サーバーがリモートリソースをリクエストし、それをクライアントに返します。

もう少し複雑ですが、信じられないほど強力な方法は、このローカルイメージの場所のURLに対してアクティブになるハンドラコードを記述することです。

これは、外部URLからデータを取得し、適切なMIMEタイプでデータを出力します。

実行可能なものに基づいてこのデータをキャッシュするコードを記述することもできます。

この方法では、画像の実際の場所を決して明かすことはできず、ログインデータやサードパーティのCookieなど、サイトには表示されない秘密の資格情報を使用することもできます。

これはすべて、Apache configでリダイレクトを簡単に設定するのがはるかに難しいです。そうしないと、URLが個人情報を漏洩する場合にこのようなことを行いました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top