2009-11-23 24 views
7

deyiminde SetEnv ayarında belirtilen değeri kullanmak için bir yöntem var mı?mod_rewrite kuralı ve setenv

Örnek:

SetEnv MY_SCRIPT myScript.php 

rewriteEngine on 
RewriteRule ^(.*)$ %{MY_SCRIPT} [L] 

cevap

7

http://httpd.apache.org/docs/2.0/env.html'a göre SetEnv, RewriteRule'den sonra olarak adlandırılır. Bu nedenle SetEnv üzerinden herhangi bir değişken kümesinin bir RewriteRule veya RewriteCond deyiminde kullanılması imkansız gibi görünüyor. Öte yandan SetEnvIf kullanma

RewriteRule önce denir ve bu nedenle Değişkenler bir RewriteRule- veya RewriteCond'ın-deyiminde orada kullanılabilir ayarlayın.

Yani aşağıdaki gibi bir şey çalışması gerekir:

SetEnvIf SERVER_PROTOCOL "HTTP.*" MY_SCRIPT=myScript.php 
rewriteEngine on 
RewriteRule ^(.*)$ %{ENV:MY_SCRIPT} [L] 
1

kullanımı %{ENV:MY_SCRIPT} yerine %{MY_SCRIPT}.