9

ENV が true または定義されている場合 (定義されていない場合は false と推定される)、一連の RewriteCond ステートメントを実行する必要があります。私は使用しようとしてきました:

RewriteCond %{ENV:IS_MOBILE} ^true$
RewriteCond ...

そして(これが有効かどうかはわかりません)

RewriteCond %{ENV:IS_MOBILE} !=true
RewriteCond...

しかし、どちらも機能していないようです。これを行う方法はありますか?

4

2 に答える 2

12

解決策を見つけるのに役立つ実際のサンプルを次に示します。

ホストが「s」または「static」で始まる場合は、「STATIC」という環境変数を作成し、「1」に設定します。

RewriteCond %{HTTP_HOST} (s|static)\.mysite\.com$
RewriteRule (.*) - [QSA,E=STATIC:1]

次に、何を探すか: ホストが「静的」である場合、ファイルが「静的」(img など) と見なされる場合は停止します。

RewriteCond %{ENV:STATIC} 1
RewriteRule (.*)\.(pdf|jpg|jpeg|gif|png|ico)$ - [L]

変数が存在しないことを確認したい場合は、変数が空かどうかを確認してください。前のルールの直後にある私のルールは次のとおりです。変数が空でないかどうかをチェックし、そうであれば、エラー = 404 (「見つかりません」をシミュレートするため) があります。

RewriteCond %{ENV:STATIC} !^$
RewriteRule (.*) /404.php [L]

あなたの環境が空でない場合、あなたはそれが本当だと思います:

RewriteCond %{ENV:IS_MOBILE} !^$
RewriteCond...

あなたの環境が等しい場合、文字列" "と正確に等しいtrue場合、それは "true" であると仮定します。

RewriteCond %{ENV:IS_MOBILE} true
RewriteCond...

お役に立てれば。

于 2011-11-14T15:25:51.167 に答える