RewriteCondのmod_rewriteでREQUEST_FILENAMEをフィルタリングする

apache2 mod-rewrite url-rewriting
RewriteCondのmod_rewriteでREQUEST_FILENAMEをフィルタリングする

まず、簡単な質問です。 これができない場合は、代替ソリューションを求めて質問を投稿します。

簡単に言えば、RewriteCondがチェックするためのフィルターされたファイルパスを作成する方法が必要です。

たとえば、次のURLを使用したい: /images/photos/gallery/beach.jpg/unique-identifier.jpg/width:50; height:50`このファイル: / images / __ resized / photos / gallery / beach.jpg / unique-indentifier.jpg`が存在します。

さらに複雑にするために、この画像ファイルが見つからない場合は、サイズ変更された画像を生成し、最後に完全なURLを指すリダイレクトヘッダーを送信するサイズ変更スクリプトに完全なURLを渡す必要があります。

詳細が必要な場合はお問い合わせください。 英語は私の第一言語ではないので、意図的にいくつかを省きました。詳細を追加すると、私がやろうとしていることを理解するのが難しくなると感じました:)

  0  0


ベストアンサー

まず、このルールはファイル名が特定の形式であるかどうかを確認します。 次に、ファイルが存在するかどうかを確認します(__resizedを追加し、最後の部分を省略します)。 存在しない場合は、 `resizer.php`を呼び出します:

RewriteCond %{REQUEST_URI} ^images/(.*)/width:[0-9]+;height:[0-9]+
RewriteCond %{DOCUMENT_ROOT}/images/__resized/%1 !-f
RewriteRule (.*) resizer.php

`$ _SERVER [‘REQUEST_URI’]`の_元のURL_にアクセスできるため、リサイザースクリプトにGETパラメーターを与える必要はありません。

あなたは明示的に言及しませんでしたが、そのようなファイルが存在する場合、ユーザーに送信したいと思います。

RewriteCond %{REQUEST_URI} ^images/(.*)/width:[0-9]+;height:[0-9]+
RewriteCond %{DOCUMENT_ROOT}/images/__resized/%1 -f
RewriteRule (.*) /images/__resized/%1

0


タイトルとURLをコピーしました