в мануале по mod_rewrite про флаги написано, что
# 'env|E=VAR:VAL' (установить переменную окуржения)
Присваивает переменной окружения VAR значение VAL, где VAL может содержать обратные связи $N и %N ссылающиеся на части регулярных выражений, которые будут раскрыты соответствующим образом. Вы можете использовать этот флаг более одного раза чтобы присвоить значение более чем одной переменной. Позже, эти переменные могут быть использованы во многих ситуациях, обычно в XSSI (через <!--#echo var="VAR"-->) или в CGI скриптах (например$ENV{'VAR'}). Кроме того, вы можете это использовать в следующем шаблоне RewriteCond через %{ENV:VAR}. Используйте это для удаления, но запоминания некоторой информации из URL.
т.е. установил переменную я могу использовать её в CGI скрипте
кусок конфига апача.
<VirtualHost *>
ServerName www.xyz.ru
DocumentRoot /web/domain/html
RewriteEngine On
RewriteRule (.*) - [E=FUCK:fuck]
RewriteRule ^/fuck$ http://www.zzz.ru/cgi/help.pl [R,L]
RewriteRule ^/fu.*$ /abc/def/abc.html [L]
ProxyPassReverse / http://www.zzz.ru/cgi/help.pl
RewriteLogLevel 9
RewriteLog "/var/log/httpd/rewrite.log"
</VirtualHost>
далее скрипт.
print "Content-Type: text/html\n\n";
print "<HTML><HEAD><TITLE>CGI-Variables</title></head>\n";
print "<BODY>\n";
print "<I><B>REQUEST_METHOD</b></i>=$ENV{'REQUEST_METHOD'}<BR>\n";
print "<I><B>QUERY_STRING</b></i>=$ENV{'QUERY_STRING'}<BR>\n";
print "<I><B>CONTENT_LENGTH</b></i>=$ENV{'CONTENT_LENGTH'}<BR>\n";
print "<I><B>CONTENT_TYPE</b></i>=$ENV{'CONTENT_TYPE'}<BR>\n";
print "<I><B>GATEWAY_INTERFACE</b></i>=$ENV{'GATEWAY_INTERFACE'}<BR>\n";
print "<I><B>REMOTE_ADDR</b></i>=$ENV{'REMOTE_ADDR'}<BR>\n";
print "<I><B>REMOTE_HOST</b></i>=$ENV{'REMOTE_HOST'}<BR>\n";
print "<I><B>SCRIPT_NAME</b></i>=$ENV{'SCRIPT_NAME'}<BR>\n";
print "<I><B>SCRIPT_FILENAME</b></i>=$ENV{'SCRIPT_FILENAME'}<BR>\n";
print "<I><B>SERVER_NAME</b></i>=$ENV{'SERVER_NAME'}<BR>\n";
print "<I><B>SERVER_PORT</b></i>=$ENV{'SERVER_PORT'}<BR>\n";
print "<I><B>SERVER_PROTOCOL</b></i>=$ENV{'SERVER_PROTOCOL'}<BR>\n";
print "<I><B>SERVER_SOFTWARE</b></i>=$ENV{'SERVER_SOFTWARE'}<BR>\n";
print "<I><B>HTTP_ACCEPT</b></i>=$ENV{'HTTP_ACCEPT'}<BR>\n";
print "<I><B>HTTP_USER_AGENT</b></i>=$ENV{'HTTP_USER_AGENT'}<BR>\n";
print "<HR>\n";
print "All enviroment:<BR>\n";
foreach $env_var (keys %ENV){
print "<I>$env_var=$ENV{$env_var}</i><BR>\n";
}
print "</body></html>\n";
переменной нифига нет,
помогите плиз!
где я накосячил, в доке явно написано, что можно работать с ними в CGI