CMS 用のオンザフライ サムネイル クリエーターを作成しており、ファイルが存在するかどうかを動的に確認する必要があります。現在、リクエストしているファイルが存在するかどうかを確認する htaccess ファイルを作成しましたが、もう少し高度で、送信された URL オプションに基づいてファイル チェックを「作成」する必要があります。
これが私が現在持っているものです(名前ではなくイメージIDに基づいています):
RewriteEngine on
#Check for file existence here and forward if exists
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)-([0-9]+)-([0-9]+)(-(crop))?\.jpg$ thumbnail.php?id=$1&w=$2&h=$3&c=$4 [L,QSA]
この URL に基づく:
this-is-the-image-name.gif?w=200&h=100&c=true
htaccess ファイルは、このファイルが存在するかどうかを確認します。
this-is-the-image-name-gif-200-100-crop.jpg
存在しない場合、RewriteRules ユーザーは次のことを行います。
thumbnail.php?name=this-is-the-image-name&type=gif&w=200&height=100&c=true
「クロップ」はオプションなので、これを使用しない場合、以前の URL は次のようになります。
this-is-the-image-name.gif?w=200&h=100
this-is-the-image-name-gif-200-100.jpg
thumbnail.php?name=this-is-the-image-name&type=gif&w=200&height=100
基本的に、に基づいて作成されたファイル名に基づいてファイルが存在するかどうかを確認するには、RewriteCond が必要ですREQUEST_FILENAME
。何か案は?
このようなもの:
RewriteCond ^([a-zA-Z0-9-]+).(jpg|gif|png)?w=([0-9]+)&h=([0-9]+)(&c=(-crop))?\.jpg$ %$1-$2-$3-$4-$6.jpg !-f
これが可能かどうかさえわかりません...その場合、すべてのリクエストをPHPファイルに転送しますが、PHPには多くのオーバーヘッドがあるため、これはより高速だと思いました。
事前に何か助けてくれてありがとう!