1

このように .htaccess に変数を設定します

SetEnv clubhub_path clubhub-ui

そして、私はphpでそれにアクセスできます

$_SERVER['clubhub_path];

しかし、Rewrite Cond の .htaccess で使用したかったのです。

RewriteCond %{REQUEST_URI} ^(?!/%{SERVER:clubhub_path}/media/).+ [NC]

this(%{SERVER:clubhub_path}) が機能するはずの場所を見つけましたが、機能しません。{}、%、$ のすべての組み合わせを試しました。失敗...

乾杯

4

1 に答える 1

0

SetEnv環境変数を設定するので、で利用できるはずですが、%{ENV:clubhub_path}試してみましたが、機能していないようです。

ただし、環境変数はRewriteRules で設定できるため、次のように記述できます。

RewriteRule ^ - [E=clubhub_path:clubhub-ui]

RewriteCondこのルールはすべての URL に一致しますが、次のように sで使用できる環境変数を設定するだけに書き換えません。

RewriteCond %{ENV:clubhub_path} ^clubhub-ui$

php に到達すると、これはまったく同じように見えるはずです。($_SERVERスーパーグローバル、またはgetenv())

アップデート

%{ENV:variable}ただし、 の右側でyour を使用することはできませんRewriteCond。あなたがApache 2.4を使用していて、ap_exprを使用できる場合、これを行う唯一の方法だと思います

RewriteCond expr "! '%{REQUEST_URI}' -strcmatch '/%{ENV:clubhub_path}/media/*'"

私のテスト環境では、これはあなたが望むことをしているようです (「/clubhub-ui/media」の URL の否定的な一致ですが、apache2.4 はまだかなり新しいです。ホストされています。

おそらく、パラメーターとスクリプトを使用した RewriteMap でアイデアを実装できます。prg

于 2012-08-12T13:23:27.403 に答える