PHPスクリプトを使用して、リソースを取得する方法?
-
21-09-2019 - |
質問
私は自分の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
所属していません StackOverflow