質問

私は自分のWebアプリケーションに以下を実行しようとしています:

<img src="static.example.com/image01.jpg?width=300&height=300" />
(私は、共有ホスティング環境ではApacheを使用してください).JPG(または私が選んだ任意のファイルタイプ)にアクセスするPHPスクリプトを実行するだけではなく、ファイルを提供する?私のサーバーを持っていることは可能です。

私は、PHPスクリプトは、私はちょうどそれが最初の場所で実行することができますどのように思ったんだけどなど右のヘッダーを設定していることを知っています。

私はこのように行うことができます知っています:

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

が、それは私がそれを持ってしたいと思いますかではありません。

役に立ちましたか?

解決

あなたは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のための表情に見えます。そのディレクティブを検索し、.jpgのため<Directory>以内にそれを複製します。 私は実際には単一のディレクトリのためにこれを試したことがありませんが、最終的にそれは速くmod_rewriteのルートよりでしょう。

のような何かます:

<Files *.jpg>
SetOutputFilter PHP
SetInputFilter PHP
</Files>
AddType application/x-httpd-php .jpg
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top