スクリプトで画像を見た後に、ビューアのHTTP_USER_AGENT
を取得したいと思います。htaccessリダイレクト後に画像から奇妙な文字を取得する
は、ここで私は別のフォルダに画像ファイルやスクリプトを分離したディレクトリ
/www
|-- /other.org
|-- /example.com
|-- /sub
|-- .htaccess
|-- agentlog.php
|-- /i
|-- photo.png
です。すべてのファイルのルートはドメインのサブディレクトリにあります。したがって、http://example.com/sub
の場合、画像はhttp://example.com/sub/i
に格納されます。 .htaccess
ファイルは、すべての画像をHTTP_USER_AGENT
というPHPファイルにリダイレクトし、データベースに格納し、.htaccess
によってリダイレクトされないサブドメインを介して画像を表示します。
さらに詳しく説明すると、ユーザーはブラウザにhttp://example.com/sub/photo.png
と入力すると、その画像のように見え、視聴者は何も気付かず、リダイレクトすることもありません。しかし、何が起こるかは
.htaccess
がphoto.png
がhttp://example.com/sub/i/photo.png
に存在するかどうかをチェックし、画像が存在する場合http://example.com/sub/agentlog.php
でagentlog.php
という名前のファイルへの要求をリダイレクトして、agentlog.php
ますが、ログインして、データベースに保存することでユーザーの種類のときphoto.png
〜http://i.example.com/photo.png
を表示します。ここで、http://i.example.com
は/www/sub/i
を示します。ここで
はここ.htaccess
ファイル
RewriteEngine On
RewriteCond %{HTTP_HOST} !^i\. [NC]
RewriteCond %{DOCUMENT_ROOT}/i/$1 -f
RewriteRule ^(.+\.(?:jpe?g|png|gif))$ agentlog.php [NC,L]
されるSQLコードなしagentlog.php
ファイル
<?php
$path = $_SERVER['REQUEST_URI'];
$agent = $_SERVER['HTTP_USER_AGENT'];
$ext = pathinfo($_SERVER['REQUEST_URI'], PATHINFO_EXTENSION);
$filename = basename($path);
header("Content-Type: image/$ext");
$img = "http://i.example.com/$filename";
readfile($img);
すべてが画像を除いてうまく機能は、実際には、.htaccess
リダイレクト自体は表示されませんされています。それは実際の画像そのものではなく、
�PNG IHDR�^���� �IDATx��ݯ��u���............
を示しています。
イメージに直接アクセスすると、問題は.htaccess
にあると思いますが、この作業を行うには他にどのようなルールを書くべきか分かりません。
さらに詳しい情報が必要な場合は、追加して嬉しいです。どうすれば解決できますか?または、これを行う方法はありますか?私はすでにContent Headerを入れていますが、なぜ動作しないのか分かりません。
私はリクエストがあります。なぜなら 'readfile(" url ")'を 'readfile(" file_path ")'に変更するのはなぜですか?私がURLの前にreadfileを使用していないので、試してみてください。 –
@LionelChanこんにちは、私は試しても違いはありません、私はまだイメージの単語のバージョンを取得します。 – pleasega
PHPコードから '$ _SERVER [" DOCUMENT_ROOT "]'を印刷して、あなたが得たものを教えてください – anubhava