1
URLにnomin
のファイルの未圧縮バージョンを提供したいとします。例えば.htaccessクエリ文字列に基づいてファイルの未使用バージョン(存在する場合)へのURLを書き換えます。
私が要求した場合、:
http://localhost/foo/bar.min.js?nomin
私は、ファイル受信する必要があります
http://localhost/foo/bar.js
をしかし、私はファイルが存在する場合にのみ発生します。
これは私が私の.htaccessファイルに持っているものです。
RewriteCond %{QUERY_STRING} nomin
RewriteCond %{REQUEST_URI} (.*)\.min(\..*)
RewriteCond %{DOCUMENT_ROOT}/$1$2 -f
RewriteRule (.*)\.min(\..*) $1$2 [L,QSA,NC]
しかし、それは動作しません。ファイルが存在するかどうかを確認する行を削除した場合:
RewriteCond %{DOCUMENT_ROOT}/$1$2 -f
これは動作しますが、存在しないファイルを指している可能性があります。
は、私が試した:- スラッシュ
RewriteCond %{DOCUMENT_ROOT}$1$2 -f
を削除します。 REQUEST_URI
を使用すると、それほど意味をなさないにもかかわらず、RewriteCond %{REQUEST_URI}/$1$2 -f
(スラッシュの有無にかかわらず)を使用します。全体をマッチングし、唯一の ".min" 私が間違っているのは何
RewriteCond $0 (.*)\.min(\..*) RewriteCond $1$2 -f
を除いた部分をチェックしますか?
サイド質問:は私のRewriteCond
と私は二回(.*)\.min(\..*)
を記述する必要はありませんようRewriteRule
を変更する方法はありますか?
からキャプチャされた値のため
$2
。 2行目では、 '$ 1'と' $ 2'を使います。彼らは未設定ですか?それは、私がその 'REQUEST_URI'部分を持っていた理由の1つです - その2つの変数を設定することです。また、どのディレクトリ/サブディレクトリでも動作する必要があります。 –'RewriteRule'自体に' $ 1'と '$ 2'が設定されているので、それらは設定されていません。 – anubhava
'.htaccess'は、それが入っているディレクトリやサブディレクトリのファイルに対する要求を変更しませんか? –