0

私は自分のWebアプリケーションで次のことをしようとしています:

<img src="static.example.com/image01.jpg?width=300&height=300" />

ファイルを提供するだけでなく、.jpg (または選択した任意のファイルタイプ) にアクセスするときに、サーバー (共有ホスティング環境で Apache を使用) で PHP スクリプトを実行することは可能ですか?

PHPスクリプトが正しいヘッダーなどを設定する必要があることは知っていますが、そもそもどのように実行できるのか疑問に思っています。

私はこれが次のようにできることを知っています:

<img src="static.example.com/get_image.php?name=image_01.jpg&width=300&height=300" />

しかし、それは私が望んでいる方法ではありません。

4

1 に答える 1

3

サブディレクトリにいる場合は mod_rewrite を使用できます。または、他の static.example.com が行うのはそれだけです。

そのサブディレクトリの .htaccess に次のようなものを追加します。

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{query_string} ^height=([^&]+)&width=([^&]+)
   RewriteRule (.*\.jpg|.*\.png|.*\.gif) controller.php?name=$1&height=%1&width=%2
</IfModule>

編集:上記を試してください。他のすべてと同様に、テストされていません... :)

GET パラメータの順序が重要になります。

test.jpg?height=100&width=120

に変わる必要があります

controller.php?name=test.jpg&height=100&width=120


別のアプローチは、apache がそのディレクトリの php スクリプトとして .jpg を提供するようにすることです。httpd.conf または php.conf を見て、.php を探してください。<Directory>そのディレクティブを見つけて、 for .jpg内に複製します。単一のディレクトリに対して実際にこれを試したことはありませんが、最終的には mod_rewrite ルートよりも高速になります。

何かのようなもの:

<Files *.jpg>
SetOutputFilter PHP
SetInputFilter PHP
</Files>
AddType application/x-httpd-php .jpg
于 2009-10-14T01:56:37.933 に答える